I use ido-mode for file browsing, and semantic for code browsing. etags will get you quite far, semantic-symref gets you the rest of the way (though you can use cscope instead, through xcscope.el). ECB can be helpful but I don't find I need it much anymore, and it's pretty out of date.