lsof I find I'm using primarily for debugging stuff. strace and tcpdump fit into the same general category - "What the hell is this program actually _doing_ right now?".
It's especially useful when you have several processes that communicate with TCP or UDP. 'lsof -i :<port>' will quickly show if you have the connections you expect to have.