All what has been mentioned.
Also, redundancy. With more advanced setups such as ESX with vSphere, you can have a VM farm, and if one server goes down, the VMs can run off another server. You can live migrate VMs off a specific server, then turn it off to do maintenance, without affecting the VMs.
Another benefit is better use of resources. Why have 10 hardware servers that are way underloaded when you can have 1 server running those 10 servers, and have no performance hit? This is especially true when you have old NT servers that can't be upgraded due to some proprietary app on it, so you can P2V it into a VM, then get rid of the old hardware, which if it fails, you can't get parts for it. Actually that's another advantage, less hardware. Instead of having 50 physical servers you can have maybe 5.
I'm talking more from a server point of view, but plenty of fun things to do client side too such as use it to build test environments or simply try out a new OS or learn it.
For example I have a win7 VM I have so I can play around with it to try and familiarize myself with the OS. I'm sure as people bring me computers to fix, I will start seeing more win7 ones so I'll have to be able to know the OS.
Plenty of other stuff too.