Part of this is the hardware (MacBooks, etc. are very powerful). Syncing and staying mobile are very easy with Macs. It's becoming more typical to get useful work done in airports, coffee shops, back porches, etc. over wireless.
If a shift to web applications continues, the majority of them will surely be developed on Macs. If you're using Ruby, Python, Apache, etc. anyway, it's sure nice to have them all pre-installed. On Windows, not only do you not have any of this, you don't even have SSH or a decent terminal, or equivalents to the core Unix utilities. (Oh wait, you don't even have a real text editor!) There's always a few hours of work to download enough to make Windows usable. Not to mention doing it all again 6 months later, when the machine is hosed and you reinstall.
I don't use Windows over VM, but I know many do, and it would seem perfect for web development. From anywhere, you can basically run the vast majority of likely browsers and test changes immediately. That is a killer feature.
I prefer it for desktop application development too. While the environment can sometimes be "weird", there are good reasons for most differences. For example, I'm used to passing the same options to GCC on Solaris and Linux; although Mac OS X does its own thing, it's hard to argue with the fact that -F is simpler and loses no real information over -L + -I.
Apple also includes some amazing code analysis tools in Instruments. You could spend a lot of money just acquiring those tools on other platforms, even if the Mac had no other advantages at all.