I also find it very useful when I start to work on a new codebase. If Doxygen documention isn't already available, I run Doxygen against the code to see what's up (after tweaking the config file to ensure all the useful graphs are generated.) Even without tagging, Doxygen can extract a lot of useful info.
If you're using Doxygen in this way, you should also install GraphViz, which is used to generate the various graphs. (Doxygen does have basic graphics support, but it's better if you use GraphViz.)
Graphviz - Graph Visualization Software
Doxygen can also work with Mscgen, a tool to generate sequence charts.
PS Checking one of the Doxygen files I have to hand, I have made the following tweaks to the one you get when you run Doxygen with the -g switch to generate a fresh config file. Mostly aimed at finding out what's going on in the code, rather than producing pretty documentation.
are all set to suitable values
FILE_PATTERNS = *.h *.cpp *.c *.dox
I use .dox for Doxygen markup only files. Sometimes you also need .hpp, etc (I tend to adjust this suit rather than use the default.)
BUILTIN_STL_SUPPORT = YES
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
SHOW_DIRECTORIES = YES
RECURSIVE = YES
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
GENERATE_TREEVIEW = YES
GENERATE_LATEX = NO
HAVE_DOT = YES
UML_LOOK = YES
CALL_GRAPH = YES
CALLER_GRAPH = YES
And if I have a web server to hand, sometimes
If I'm running Doxygen on a large codebase, I either trim this set down, or generate Doxygen for a subtree of the project at a time.