On Mac, the options are basically LDD and BrickSmith. LDD has a much more intuitive UI, though fitting gears is pretty painful.
I tried to get into BrickSmith--as many swear by LDraw--but can't really get the hang of it. LDD's "connection finder" is extremely helpful for me, and I can put things together very quickly.
I haven't tried this yet, but for my next MOC I plan to build in LDD, then export and run it through BrickSmith + LPub to generate proper instructions.
I tend to freebuild, then take the model apart. I take pictures with my phone as I'm disassembling, so I remember how to put it back together.