Wilbur ?

And you can create height maps from contours which I have done and semi-tutted a few times. Its hard to create really good terrain from hand drawn contours but you can use Wilbur to spruce them up a bit.

You can download height map DEM data which I do all the time like for my failed NY challenge entry or the Japan challenge etc. You can create it from existing reference material like what we do in the ME-DEM project for middle earth but thats hard. I write my free instant islands app to generate random noise terrain or you can synth up some Perlin or similar of which Su-Liam does here by using lib noise or something else.

Free good 3D app is Blender - but I would say good as in powerful but not necessarily easy to use... people have mixed feelings about that app - or should I say there are mixed opinions from people about it - yes probably the latter. There is sketchup as well though thats not really for doing the terrain part of 3D worlds.

If your dead set on using a 3D printer as opposed to some other method then you will almost certainly need a file format of STL - the stereo lithography format. Blender has that and I think there are sketchup converters for it. I expect that 3D studio and all the big guns have it too, plus POVray, but it might be less popular on light weight 3D apps as its more of a CAM format than a graphics format.