IDA Pro by Datarescue as Nexus mentioned is probably the best disassembler in the world.
There are some places where you can download the full version.
It has support for many processors and file formats,PE,MZ,ELF..
Its usually around 18-20 Megabytes.
Its the only tool you need for disassembling..

Win32 Disassembler by URSoftware is also pretty neat, disassembles 16/32-Bit code,has a nice real time debugger for 32-bit applications.
Displays resources,ordinals,exporte/imported API's and modules.

Sourcer for MS-DOS is not bad.
SoftICE is primarily used as a debugger.