
The brightness of each pixel determines the height of the corresponding tile in the city. The brightness ranges from 0 to 255, with 10 being the sea level. Dependent on where you have your height maps from you may have to adjust their contrast and brightness. See the entry on Wikipedia for more information about height maps.
You can get real world height map data for example from http://terrain.party/
In order to generate a city from a height map place the height map image file into your TheoTown folder and remember its name. Then go into the game, create a new city, and enter the name of the height map file (including the file ending) into the seed text field. The picture will be scaled to match the selected city size. Append #somerandomtext to add some randomness to the map generation in case you are not happy with the result (e.g. the biomes on the map).
Of course, you can do the same thing for regions. The result


This feature is compatible with all recent versions of the game

However, the version for iOS doesn't support 16 bit (per channel) images right now. This is a special format that is used by some height map creators; you may have to save them with an image program to make them compatible with the game.
A template to generate a completely flat map: