Like many (most?) things in Blender there are multiple solutions to any problem, and this challenge is no different. The decision on which method to use will largely depend upon underlying geometry, you need, what you plan to use the project for, what future use you might want to make of the geometry later, and at what stage you are at in the development of the project.
I've actually modeled bits of terrain where I was modeling actual parts of the US. The technique I like best so far is to start with a "circle" with four vertices, subdivide the edges, so that there is one vertex at each point where a contour line crosses the edge. I then extrude from vertices (or sometimes pairs of vertices, looking elevation to the vertices on the opposite edge. Then I fill the faces. In this method, the retaining wall poses no particular issue; the land above is at one elevation, the land below is at another. Depending upon the nature and construction of the retaining wall, I would either construct it as part of the terrain, or model it later with another object. Whether or not I would merge the retaining wall with the terrain would depend upon a number of factors. I can easily imagine instances where I might combine the retaining wall into the same object as the terrain, but generally would keep it separate.
Ive uploaded a simplified explanation of my general workflow here, along with a ~.blend file that illustrates the various steps. The first step is illustrated in layer 2, the second in layer 3, &c.
In my workflow, I would be unlikely to use a boolean modifier on the terrain, because the workflow I use would simply bypass any places where I would a boolean modifier.