Black outline is the easy part!
As pioneered by Sega (Hurrah!), the easiest way to get the black outline is to take your object, clone it exactly, use a 'fattening' command on it (I think it's called Push in 3DSMax), colour it black and then reverse all the normals.
This will effectively double your polycount, but it's the way it was done in JSR, and is probably the way it's still done in cel-shaded games.
You probably don't quite get what I've just told you (completely understandable - I haven't put it across very well), but just try this on a mesh and you'll see what I mean.
"I am a living, thinking entity who was created in the sea of information."