i personally think Boxen is the easiest way to setup a brand new machine. it can also easily be distributed and updated
the only downside is that it requires Xcode + command line tools.
https://boxen.github.com/
Boxen always seemed pretty heavy-handed to me for a single developer as opposed to an IT team managing workstations for a team of developers. Is this not the case? A dotfiles repository always seemed like enough to me.