chef is a powerful tool I've been using it for a couple of years. WAAAAAAAAAY too complicated for the vast majority of folks (including myself).
Really hate the per-instance charges though. For folks running on their own gear (vs in public clouds where you can't account for anything), there should be a model where you pay e.g. per socket or per physical server (ala Red Hat w/unlimited virtual machines option).
With a typical VM server having anywhere from 20 to say 100 VMs on it, per VM pricing adds up very quick, it also makes you think twice about whether or not to deploy that new VM or consolidate onto existing VMs. One of the major benefits of VM of course is to isolate workloads. Per-VM pricing (whether it is VMWare's management offerings or Opscode or whatever) of course encourage the opposite approach.