Here is what Sun says about them:
...Sun's K virtual machine (KVM) is a virtual machine designed from the ground up with the constraints of inexpensive mobile devices in mind. Named to reflect that its size is measured in the tens of kilobytes, CLDC is suitable for devices with 16/32-bit RISC/CISC microprocessors/controllers, and with as little as 160 KB of total memory available -- 128 KB of which is for the storage of the actual virtual machine and libraries themselves.
Typically, these devices run a 32-bit microprocessor/controller and have more than 2.0MB of total memory for the storage of the virtual machine and libraries. CDC contains the CVM virtual machine. CVM is a full-featured virtual machine designed for devices needing the functionality of the Java 2 virtual machine feature set, but with a smaller footprint.
[ February 26, 2002: Message edited by: Valentin Crettaz ]
From an application developer point of view it doesn't really matter which VM is being used, what matters is which J2ME configuration (CLDC or CDC) is being used. It's up to the device manufacturer to supply a VM that supports the configuration, and they may choose to license the KVM or CVM from Sun or else write their own from scratch or use someone else's.