How to make a cell shaded scene using the compositor
You can create both cell shadows and highlights using the "Normal" render pass. This is how such pass looks like, when enabled you can view it inside UV/Image Editor selecting the Normal pass:



Render the scene without shading (or with minimal shading - ambient occlusion, etc.) and add cell effects in compositor like this:



Quick intro into compositor can be found here. Add nodes through the menu or with Shift+A.

You change the direction of shadow and highligh with those Normal nodes.

For nice edges Full Sample Anti-Aliasing should be on (Blender Internal setting):



Result:



It is worth noting that the Normal render pass is in global space (= coordinates relative to the world) and not camera space (= coordinates relative to the camera), so camera movement will not change the shading (it will not change how the normal pass looks like).

If you need cell shading working like a MatCap material is working, you will need a custom normal pass transformed into camera space. Since compositor has no Vector Transform node it cannot do this. 

The solution is to create another render layer and override all materials in it with this material:



Use this layer instead of the Normal pass to make the shadow and highlight relative to camera and to follow it's movement.