There are a number of benefits to both systems: In short KVM creates a dedicated virtual server with dedicated resources (such as hard drive space) on the system, Container Virtualization on the other hand allows you to adjust various things such as ram, disk size and other attributes on the fly - AND it shares a kernel because of this you will have to allocate significantly more resources to a KVM guest to get the same results as from a OpenVZ guest.
In short KVM allows you to have a dedicated filesystem of your choice (with direct block level access), dedicated Ram with full access and debugging capabilities, allows for dedicated server like isolation, IPSEC VPN, Kernel mode NFS, independent kernel, independent kernel modules, full control over sockets and processes, full guest OS Support (such as Linux, BSD, OpenSolaris, Windows and even MAC OS-X with a little work), direct dedicated access to PCIe/PCI cards, SWAP per vps, and it is the official integrated virtualization method in the Linux kernel.
OpenVZ In short is the only highly scalable virtualization technology with near-zero overhead, strong isolation and rapid customer provisioning that's ready for production use right now. Deployment of OpenVZ improves efficiency, flexibility and quality of service in the enterprise environment. One key difference however is that direct access to hardware is not available by default, iptables are limited w/o making adjustments to the overall iptables system. Keep this in mind - There is no emulation layer, only security isolation, and all checking is done on the kernel level without context switching. This is one of the main reasons why OpenVZ is so popular and such a respecter of resources on your system.
Hope that helps