IDG Answers is a community of experts who are passionate about technology. Ask a question or answer one below.
Of course there are times when servers should not be virtualized. Sometimes, it's legacy software running on old, legacy hardware and a better call is to migrate to a new service / software to take advantage of new features - replace the old stuff for something brand new, rather than dragging it along just because of a historical tie to the older system. Other times if you have multiple applications / services that can have heavy processor peaks, you might want to not use a single hardware server to host multiple vm's; you may want to do some benchmarking first, but I have found it better to keep Exchange services on their own servers, rather than running it on a box that also hosts DC functions, SQL, DHCP, etc.
I have virtualized domain controllers, exchange servers, SQL servers, web servers, and various middleware servers. I have yet to run into a problem that could not be resolved by using more powerful hardware, especially when hosting multiple servers on the same box; adding more RAM is critical to achieving peak performance. You'll want to be careful with SQL servers, however, if they're divied up to use multiple drive partitions for logs, data, and scripting tools.