The following description applies (unless otherwise stated) to a Moon that is generated with three of the five options (Tree Cover, Terrain Roughness, and Exotic Terrain) set to the default (center) positions.
Hills tend to be less than 15 blocks high, but can be as much as 30 blocks high in rare cases. Increasing the "terrain roughness" or "exotic terrain" options causes the average hill height to increase, but does not cause much change in the maximum. Hills greater than 20 blocks high are always rare.
Craters are fairly common, but are a bit hard to notice due to the need for a suitable vantage point.
Fault Lines are a result of the terrain generation algorithms (see Superblock for more details). A pair of parallel fault lines is sometimes found at a distance of 128 blocks apart. In this photo the fault line runs from top-left to bottom-right in the photo. It is a vertical surface that is seen both above and below the Water.
Underground Material Strata
A hill viewed from the east (looking west). The hill and the ice to the left (south) are marked with red markers placed along a straight north-south line.
Water fills all areas whose solid surface would otherwise lie below "ground level." These are commonly known as Ice Lakes.
Sand is light blueish-gray and is found below ice and near the base of hills. Its thickness is from one to three blocks (it will always be three blocks thick when found below Ice).
Topsoil has a texture that is light at the top and brown on the bottom. Though it looks different, when you mine it you get ordinary Dirt.
Dirt is brown all the way through. This is found in a three-block thickness below the Sand or Topsoil layer. Soil-filled regions are also sometimes found at deeper layers.
Gravel is pink and gray. It is found in a five-block thick layer below the soil layer. Gravel-filled regions are also sometimes found in other places (either higher or deeper than normal gravel level).
Rock is medium gray. It is found below the gravel layer and extends all the way down to the bottom of the world (63 blocks below "ground level").
A More Complete View
After I worked out the internal data format of the game I was able to make accurate maps (and cross-sections) by inspecting the saved game data directly. Here is a more complete view of the hill cross-section:
Judging your depth
Because the layers have a uniform thickness, you can usually judge your distance below the surface while mining a tunnel.
Imagine mining a horizontal tunnel along the dotted yellow line.