We're a Mac shop with intensive requirements to run Windows software (both because the industry standard reversing tools are all primarily WinAPI-based, and because a lot of our targets are Windows). VMWare Fusion works fine, with (for business-class apps) virtually no perceptible slowness --- if you max out the memory on your system, and run one VM at a time. Virtually everyone on our team does this.
Running two systems on your laptop is a perfectly viable strategy for dev machines, and if you're most at home in Windows, I recommend it. If you're Linux or OS X, though, I think it's probably worth the effort to keep your dev environment cross-platform instead of working on it in a VM.
Yes. It turns out 12GB of RAM does come in handy. (I have the same setup, Win7 w/ Ubuntu VM).
What's more annoying is doing port mapping through VirtualBox's XML configuration files, but this is a one-off task and not too complex. I'm seriously considering purchasing Mac OS X Server edition and using that in a VM as well but I can't figure out if this actually works. Does anyone know?
In case anyone else stumbled upon this thread, I've always thought running a VirtualBox VM in Bridged Networking mode still did not allow the VM instance to be externally accessible.
However, then I read this ServerFault thread and realised the bridge is a _new interface_, and hence you must either bind directly to it or bind to all interfaces in order to get your VM to become externally accesible!
It's much easier when it's just another IP address! :)
And yeah, the reason something like AppEngine or Django wouldn't work is that they, by default, bind only to loopback/127.0.0.1, and are only accessible from the host on which they're running, as a security precaution.