I agree. Built-in defrag is a excellent tool, all those defragmenters are based on its defragmentation algorithm. Anyway, in the sake of automation Perfect Disk 10 does the job.
Hm... tough one to answer... Defrag.exe in Win7 when my laptop's on. (Online defrag) MyDefrag and WinPE 2.1 when my laptop hasn't booted into Windows 7 yet... (Offline defrag) Offline defrags usually turn out better in terms of end result.
I use perfect disk on all my servers and workstations. The added plus is that it supports a central management console so you can set schedules, deploy the client/patches, see how fragmented all your machines are from one console.
I have to second NiHiLisT. mydefrag is absolutely amazing. It uses scripts - comes with standard scripts, or you can create your own for special needs. I've never had to use any thing but the standard scripts. Its simple and easy to use. It is easily the equal of (if not better than) prefectdisk / O&O defrag / diskkeeper and its free. Try it you won't be sorry.
I'm using the Windows default defrag currently and it works great ..so far. I've set it to defrag once every week automatically and it does its job.
PerfectDisk is the one that I have been using from the Windows XP days and is still the best for me even in Windows 7!