As some people have already stated there are several techniques that you could use to generate the terrain, namely:
Using a 3D Modelling package
Create a full 3d terrain in your 3d editing program of choice (such as Blender, 3DS Max, etc). The advantage of this is that you can create exactly what you want, with overhangs, caves, and other impressively detailed features.
The down sides are that it will require some skill to make the level, which then needs to be exported from the modelling package and into the game. Additionally the data generated could be potentially huge, making the stored level far larger than the methods outlined below.
Heightmap in an Image
Create the terrain based on a height map which can be created as an image in an image manipulation program (paintbrush, Paint.Net, Photoshop, etc).
The advantages are that there are plenty of image manipulation programs out there, you should already have code in your project to load those images, and the file sizes will not be as large as storing the whole mesh of the level.
However without using some other tricks the level will not be able to have any overhangs or other complicated entities like caves. It will still be able to emulate some of these things with models in the scene though.
Random Map Generation
An alternative to the previous idea is to procedually generate the terrain (akin to using the clouds filter in Photoshop and blending it multiple times) using perlin noise. This is essentially what the Terragen program does to generate the terrain.
The main additional downside to this is that since the map is random you might not get two identical maps for a very long time.
Editors
As far as editors go you've got some choices:
- Use a 3D Modelling package to model the whole map.
- Use a paint package to create a heightmap.
- Use some code and a random seed to generate a random map.
- Or code up a map editor using the in game engine.
The last choice however will require a bigger investment by the team and will still require you to use one of the other methods of displaying the landscape (3d model or height map).