Should I control npcs with Rigidbodies or with the CharacterController?

Looking through the island demo and the 3rd Person platform tutorial, I'm a little confused about how I should control npcs. I had good success just having a creature with a character controller, setting his look direction, and using controller.Move.

But...then, I look at all the goodness that rigidbody provides, but it seems like you have to control it with forces, which can be a bit more complicated than the character controller. I haven't tried moving a character around in depth with the rigidbody component, honestly I'd love to find a good writeup on the pros and cons of using both approaches for object movement.

For somewhat simple creature movement, what is best? Or is there a way to have both?

You might find this helpful: Guidelines for using rigidbody, collider, CharacterControllerScript, etc?