When you configure the CPU settings for the VM, the number of virtual sockets denotes how many sockets (=CPUs, NOT cores) the guest will see.
The number of cores per socket tells how many cores each of these CPUs will see.
So if you set the former to 2 and the latter to 4, your VM and guest OS will see 2 quad-core CPUs.
For a single VM, you will only be able to configure as many total cores (in whatever socket/core combination) as the physical host has physical CPU threads available. So on a dual CPU quad-core Xeon with HT physical system, you can assign a VM virtual 16 cores at maximum.
--
http://alpacapowered.wordpress.com