>>62
You can put in a executable image for which you have no source, and it figures out all the library calls, determines where the functions are, works out the interesting strings and structs and cross-references it all. Then you can go in and explore the program as if following hyperlinks, and annotate/rename parts of it to get a better understanding. Or use scripting to do the same. And it does this with executables from many different architectures and platforms.
If you're serious about reverse-engineering, IDA Pro will be your main tool.