i’ve been fighting with this - finally i made it work. mesh-based cel-shading.
take a mesh (head, monkey, whatever you like). leave edit mode. give it a material. set to shadeless. turn on ZTrans. set color to white.
duplicate the object (wihtout moving it’s position!). enter edit-mode, press ALT+S (scale along normals). scale a little bit - the more, the thicker the cel-outline will be (though that can be controlled by an other setting later, too). leave edit mode.
in the material panel, make the material of the second, scaled object single user. change the color to black.
go back to the first object. in the material settings, activate ZInvert. turn up ZOffs to something between 0.07 and 0.10.
for both objects, turn on SubSurf, level 1 to 2 (if desired).
the higher the ZOffs value is, the “less” lines are visible.
the same technique is used to have cel-shaded objects in the game-engine, unfortunately at the cost of doubling the vertices used.