I think blender would be a good option for more complex things. Here's a quick example I whipped up.
This one is just a render with some Ambient occlusion added. Under the render settings, The scale is down to 17 percent and Anti Aliasing is turned off.
Make sure your camera is set to orthographic for a more isometric look. The angle of the camera is about 45 degrees. (It was actually the default position)
This one uses the freestyle build from Graphicall.org
I used the uniformpruning_zsort Python module.
This render uses the same technique shown
hereAdjusting the diffuse ramps to give more of a 8/16 bit look is the trick here.
So just giving another example. Nothing wrong with doing it by hand either. This way (if you know how to use blender already) is a very fast way of getting this kind of result. This only took me about an hour. Of course, adding more detail will take longer
Here is the
Blend file