A very interesting and valuable approach is to generate buildings automatically, with minimal hand-effort in specifying and locating them.
See the CAD Software page for some commercial software for manually designing buildings with some degree of procedural/parametric automation, in particular ArchiCAD and Revit. Also, some of the general-purpose terrain software on the Commercial Software page have significant building-specific functionality.