I've heard amazing things about OpenGrok. I know another team at my place of employ uses it and they find it very handly. From its web site:
OpenGrok is a fast and usable source
code search and cross reference
engine. It helps you search,
cross-reference and navigate your
source tree. It can understand various
program file formats and version
control histories like Mercurial, Git,
SCCS, RCS, CVS, Subversion, Teamware,
ClearCase, Perforce and Bazaar. In
other words it lets you grok
(profoundly understand) the open
source, hence the name OpenGrok. It is
written in Java.