How to build an artificial 'dam' across a river?
Begin by considering the type of dam construction. Some dams are high, thin, and curved; others--including earth dams, which are perhaps commonest--tend to be straight across and quite thick, with slopes that vary from 1:2.5 to 1:5 (40% to 20%). For many examples, see the illustrations in B. Bassell's 1904 study on earthen dams.
You need to create a DEM of the dam which reflects the intended type of construction. For many purposes, such as estimating the impoundment volume, this DEM need not be highly accurate. This may allow you to create its elevations with a simple formula. For example, to create a DEM of a straight earthen dam with upstream and downstream slopes of 1:5,
draw a line segment (or thin polygon) corresponding to the top of the dam,
compute the Euclidean distance to this line segment (this is a Spatial Analyst operation),
divide that by 5 (or whatever the slope should be)--this is a simple "map algebra" operation in Spatial Analyst--and
subtract that from the elevation of the top of the dam (another map algebra operation).
Regardless of how you create this DEM of a "raw dam," combine it with the original DEM simply by taking the larger of the dam elevation and the natural elevation, cell by cell (one final map algebra operation).
For example, suppose the area in the western third of this DEM will be impounded by a dam spanning the narrow passage crossed by the yellow line segment (manually) sketched here:
Its Euclidean distance grid initially looks rather uninteresting and useless:
However, when combined with the DEM as described (and hillshaded and contoured for better viewing), we obtain this image, to be compared to the original DEM:
In this map, which is about 3000 feet by 2000 feet, a 57.5 foot dam with 1 in 5 slopes on both sides has been drawn. The contours are at 10 foot intervals.
Well, the "de facto" way of doing it, if I understood you correctly (you want to modify a DEM to contain the dam and it's lake) you will need to create a separate DEM just for the dam.
The way to do it is to use a flat DEM with the height of your lake. Create a constant DEM. It cannot be a rectangular DEM, it must have the shape of the lake contour.
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Create_Constant_Raster
After that just replace the values on the original DEM that intersect your lake polygon by this constant DEM. It should provide you with a flat area surface DEM containing your lake.
In this step you will need a polygon,with the lake shape. Convert it to Raster and make it constant (with the value of lake height). Then you can easily replace the values on the old dam (do not sum the values, otherwise you will have just heightened the terrain) using map algebra tools.
http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Single_Output_Map_Algebra
To model the actual dam, i would suggest another software, as Google SketchUp.