The basic difference between OpenVZ & KVM is that OpenVZ can only host Linux OS, where KVM can host Linux, Windows, & custom OS too.
Both have pro and con. A con of OpenVZ is the complete sharing of resources it allows. OpenVZ uses a shared kernel with a layer of virtualization on top of the actual Linux OS. Since the kernel is shared by all VPS users on this node, the kernel is not customizable. Once you have reached your allocated RAM limit, the remaining RAM becomes free for all users on the server. There won't be any problem if you run small applications, but might be issue to run something more resource hungry applications.
KVM allows to set minimum & maximum values for resources, so only use the resources a applications need. This is real hardware virtualization, meaning better performance from lower requirements on the Hypervisor. 100% of the RAM and disk resources are dedicated to one individual user. KVM provides a more isolated environment and gives users their own kernel.
OpenVZ provides the end-user with speed and scalability, and it’s more affordable. KVM offers private virtualized hardware including network card, disk and graphics adapter, and guaranteed resources for increased reliability and customize-ability. KVM packages are ideal for serious resellers, game servers, small businesses, and medium-sized enterprises.
If you are a host selling to your clients, OpenVZ is easier to set-up and maintain properly, while KVM takes much more networking knowledge. OpenVZ and their templates are more beginner friendly in that aspect. If you are simply an end-user, don’t worry and go with a managed infrastructure provider.