A terrain is really just a flat plane, divided up into sections, with the vertices raised/lowered to create hills, mountains, valleys, lakes, rivers etc. So theoretically you can use any program that allows you to do that, milkshape being one.
If however you want to use the matrix commands in db then you need to make a matrix terrain as opposed to a mesh terrain. A matrix is more versatile, though also limiting in some respects. I used matedit for this until I knew how to write my own matrix editors, and it's capabilities are only limited by the imagination of the person using it
The last option is to make your terrain out of a mesh in any program and then use a matrix sculptor to drape an invisible matrix over your mesh, so you can have the best of both worlds.
In my experience, the nicest looking realistic terrains, made with the minimum of effort are done in bryce3D, as that's what it was designed for specifically, and it bakes textures beautifully. I don't really like the user interface but that's just personal preference.
I think you'd be best off just trying out the demo versions of the different packages available and decide for yourself which suits your own needs best
ZX Spectrum 48k Issue 3, Radio shack Tape drive, Rank arena 12" T.V. set.