Dynamic Memory: I first began using Dynamic Memory on my VM's about 6 months ago when the SP1 beta became available. It works beautifully, and now that SP1 was officially released recently everyone should consider using it. This feature allows you to truly oversubscribe memory allocation to VM's, especially if you're installing Windows based operating systems to your VM's. Microsoft really has the edge over VMWare when it comes to dynamic memory with Windows based VM's, because they have access to the Windows kernel team. That's right, when your company has both the hypervisor and client O/S teams under the same roof, you've got an advantage. Truly dynamic memory allocation requires components on not just the hypervisor but also the client O/S - each require awareness of the function, and the mechanism to both give and take memory based on demand.
With my previous Hyper-V server I was able to get away with 8GB of physical memory on the motherboard and still run about 6 x Windows 7 VM's in addition to a fairly busy Windows 2008 R2 server console. I set the minimum memory per machine to 512MB, and the max to 2048. When you do something memory intensive in the VM, say like opening a web browser and holding down CTRL-T to open lots and lots of new tabs, if you watch Performance in windows task manager, you can actually watch the memory being allocated to the VM. Same goes for the hypervisor - you can watch physical memory being taken away. If you close the browser and the memory demand goes down, after about 10-20 seconds you can see the extra memory drain back out of the VM - its very cool.
People will argue about memory oversubscription and whether Hyper-V or VMWare is superior, but again with Windows based VM's there's no contest. The last time I checked VMWare doesn't technically do dynamic memory allocation anyway, but rather block-level memory dedupe - that's a very different approach to memory oversubscription, but does have its merits and thats a separate discussion.