I've been playing with the idea of a making tiles using a colour "mask" and a heightfiled. After rotating them and pasting them you take the heightfiled layer, duplicate it twice and emboss one copy and run an edge detect on the other. It is a lot of work to make the heightfilelds, but once a "library" were built it would be fairly easy to assemble these (or generate random maps programatically using imagemagic)

Sample tile colour mask:
Click image for larger version. 

Name:	tile_color.png 
Views:	196 
Size:	209.8 KB 
ID:	34598

Sample tile HF (note there is a road as well, it is just a small difference from the background, and maybe I shouldn't have done that.... Even terrain could possibly be added in):
Click image for larger version. 

Name:	tile_hf.png 
Views:	108 
Size:	22.7 KB 
ID:	34599

Rotating these tiles gives me this "map" when embossed:
Click image for larger version. 

Name:	result_emboss.png 
Views:	430 
Size:	75.9 KB 
ID:	34600

And the edge detect (inverted) for "outlines":
Click image for larger version. 

Name:	result_edge.png 
Views:	236 
Size:	137.5 KB 
ID:	34601

And the final result... emboss layer set to overlay and edge detect layer set to multiply:
Click image for larger version. 

Name:	result_combined.png 
Views:	149 
Size:	877.1 KB 
ID:	34602

The only thing it doesn't create are shadows

-Rob A>