There is really very little to choose between the two tools. They have the same origins, in fact opscode reportedly originally started with puppet.
Checkout using vagrant to spin up development environments. It supports both Puppet and Chef and might assist in evaluating both tools.
Aside:
- I initially learned puppet first and switched to chef later (My work chose the latter tool). My experience was that puppet was easier to pick up, however chef has proven to be extremely powerful once the initial learning curve has been overcome.