VMs aren't good for much. I found my computer usage is more intense than I realized, and that's where VMs fall down. They're good for test environments, throwaway software installations, and light duty servers. I'd rather have real hardware.
I don't agree on I/O and overall performance. I managed to test several TCP connections on the same box using a paravirtualized environment (linux+kvm) with CPU virtualization extensions. On a quad-core I can emulate up to 6 virtual boxes with the very same performance as the 'real' setup.
However, it's often a matter of software you choose. Last time I used VMware it was crap. You will have to choose a fully paravirtualized environment running on a CPU with V.extensions, as well as the correct tools to construct your virtual ethernet network.
VDE [http://wiki.virtualsquare.org] is a complete tool that gives you the correct network infrastructure to connect together real and virtual machines reliably and with great performance (Gigabit), expecially if used with the IPN kernel patch.
And if you are lazy, there is a complete GTK application called "Virtual NetManager" to manage all your virtual stuff (create network scenario, configure and start machines on different cpu arch, etc.) with a click.