Radare2 is an open source tool to disassemble, debug, analyze and manipulate binary files.
Edd at Canthack has posted a detailed example demonstrating use of Radare2 to reverse shellcode.
You may also want to check out the Radare talks and docs pages for more information on this tool. They have a 152 page book covering Radare version 1 available for download which covers many of the concepts also applicable to Radare2.
You can get Radare2 in a tar.gz package with instructions for installs on Linux, Mac OSX and Window on their download page.