I like vnstat: http://humdi.net/vnstat/. It's easy to set up and has almost zero overhead. I have it send me an email from cron estimating monthly usage once a week. It won't break things down per-process, per-port, or per-remote-host, but I haven't found a nice tool to do that yet.