At the boundaries of an application it is often nice to map objects from one form to another. The most common example is mapping domain entities to view models, or mapping to dtos for network transfer.
Automapper is a library for removing the duplication from object-object mapping code by mapping by convention. When the conventions don't map the way you want you can explicitly map properties.
After using AutoMapper on a couple of projects I have stopped using it. The problem is that the convention based mappings introduce annoying bugs when property names change or the object graph changes. When a change breaks the convention it results in a runtime exception. Very annoying.

It's been a couple of years since you posted this, and the points are valid. However, after I discovered AutoMapper, I called for a refactoring from statically based configurations to isolated configurations. Reason? I don't want to incur the overhead of my ENTIRE ecosystem for a single controller's responsibilities. When I do want a mapping, what I end up with are very problem specific set of, almost always, controller based mapping configurations. This works famously well at least for my purposes.