I'd say logical separation of services.
Let's say you use OpenVZ for virtualization, as it has very low overhead and allows the VM to run at more or less native speed, you can easily deploy several virtual servers on one physical server and thus separate different services from each other, like having DNS run on one VM, a proxy on another.
As servers get more powerful it is easy to run several, not only two, VMs on one physical server.
For example: I use KVM for desktop-virtualization and can easily run two VMs with full GUI. I don't know how that would compare to a OpenVZ-VM, which only is shell-only, but I guess that with the same load I could run up to 10 OpenVZ-VMs.
I even had two OpenVZ-VMs running inside a KVM-VM without any trouble.
Personally I use VMs to test stuff. Usually different distributions or other OSs like BSD, Solaris or ReactOS. But I have also used it to test clustering.
Another possible application is a web-hosting-environment. Each domain is hosted on a different virtual server. Thus the domains are more separated from each other than it would be in a traditional shared hosting environment, thus more security.
Also, if one of the servers crashes for some reasons or does other funny stuff it's unlikely to affect the other domains, as they run on different VMs. More stability/reliability.
Finally, as the regular website is hardly a challenge for today's servers having several VMs running utilizes the server better, which results in a better use of IT-budget.
There are many reasons why virtualization is getting bigger and bigger these days, some of the reasons I have named above, whatever may apply to you is what you would like to do in a virtual environment.