In the Linux world KVM is a very reliable solution that can be used for x86 architecture virtualization with a reasonable overhead. Reliable and extensible, with a tight integration with linux security facilities like SELinux, KVM just does the job.
You will unlikely have to see kvm if you are using a cloud solution because of the seamless integration. If instead you are a Linux desktop user, KVM is the solution to go if you have to start virtual machines with linux or other operating systems with almost zero extra configuration needed.
That said, KVM have a rich options set that can be directly used or via wrappers like LibVirt.
The support of virtualization in the recent generation of x86 processor is almost a must have, so the only negative aspect of needing hardware support to have a fully functional kvm can be dropped. It would be nice if the support for other platform like ARM or Risk was as good as the x86 one, but I think with the democratization of chromebooks based on these chips and mobile devices, it will not take long for that to happen.
Full system virtualization is a necessity for some testing cases or in the event of evaluation of new functionnalities. Booting up a vm in a few seconds and having an almost genuine systems that can be can linked in very different network typologies for almost zero configuration were the main reasons of our choice of kvm.