Having used STAAD, Enercalc, and RamSteel, my personal preference is Ram. It can handle the design of a superstructure, and using those loads design baseplates and foundations. (though I don't know if it can handle retaining walls - I'd have to check. I usually use Enercalc for that.)