Ansible's out of the box experience allows you to start with some simple but useful constructs then allow you to graduate to more and more complex usage.
I started with some of the one-liners here, then setting up inventory files, then roles, some simple tasks and then (what really sold me) was templates.
Even just having those configuration files in an SCM is a huge win, but I honestly squealed with joy when I was able to write a nginx configuration file that dynamically included backend servers given a particular role. And that provisioning a new backend server took a couple minutes and was automatically added to the load-balancing proxy! (not to mention was instantly sending metrics to a graphite/statsd backend because collectd was installed automatically too as part of a common role and configured to point to that log collecting server!)
Magic!