If you have .NET code, you might want to try the RC release of Visual Studio 2010 Ultimate to generate sequence diagrams and dependency graphs:
How to: Explore Code with Sequence Diagrams: http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx
...you can generate a sequence diagram to help you visualize and understand how your code
implements a particular method. A sequence diagram describes an interaction between objects as a
series of lifelines and messages. Lifelines represent instances of objects, and messages represent
method calls between those objects. You can generate sequence diagrams from Visual C# .NET or
Visual Basic .NET code. A generated sequence diagram shows elements similar to those on a UML
sequence diagram.
UML Sequence Diagrams: Reference: http://msdn.microsoft.com/en-us/library/dd409377%28VS.100%29.aspx
How to: Generate Graph Documents from Code: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
You can use Visual Studio Ultimate to explore the relationships and organization in existing code by
generating directed graph documents. These graphs represent code elements and their relationships
as a set of nodes that are connected by links, or edges. You can use these graphs to help you
visualize, explore, and analyze code.
How to: Find Code Using Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
You can select vertical sections or "slices" of code that you want to visualize by using
Architecture Explorer. You can explore source code in a Visual Studio solution or
compiled managed code in .dll files or .exe files. You can use Architecture Explorer to browse
other domains by installing additional providers. When you find the code that you want to
visualize, you can generate graphs to explore the relationships in that code.