Mesh, Curve, Lattice and Surface objects can each store multiple shapes (also known as Vertex Keys or RVKs), which can be animated using Ipo curves. In the past, the interface to this feature was difficult to grasp, but access to these shapes for Mesh objects has received an overhaul and has become significantly better integrated into the UI.

Pinning

By creating multiple instances of an Object (using ALT+D), each instance can be "pinned" to only show a specific Shape Key. This allows to have a full overview of all available shapes at once in the 3d window.

 

You can control this with the new Shape Panel in Edit buttons.

Add Shape Key

Insert a new shape (hotkey in 3D window: Ikey)

Relative

Each Shape has its own animation curve, working relative with respect to the Base Shape.

Pin (icon)

Make the Shape fixed for this Object instance

Arrows (icons)

Move to previous or next Shape, or browse it using a menu.

Name

Give the Shape a name

X (icon)

Delete the Shape

Slider

For "Relative" Shapes, which are not pinned, you can also insert the animation curve points for it.

Min, Max

The range of the slider

Vertex Groups

On top of a Shape Key, you can also define a Vertex Weight Group to work with. It will blend the current Shape with the reference (basis) Shape, based on the weight as painted (or set) in the Vertex Group. This feature works very well to create asymetric Shape keys for facial expressions, or to split a single Shape Key into several distinct components.

 

You can find a very cool demonstration of the feature linked from the image here: the Monkey Brush!