Numega's SoftIce for me, but I always preferred interactive exploration over static disassembly.
Disassembling a large binary would get you a massive text file that was painful to navigate - and often times I'd find that the code I was interested in removing "Invalid license key" (ahem) would be stored in some unrelated DLL.
So for me setting breakpoints on MessageBoxEx, and similar things, was by far the quickest and easiest way to go.