Wireshark uses tcpdump to do the actual capture. You can interface to it using libpcap (or winpcap on Windows), should wish to do some of the higher level stuff yourself.
We use Zenoss (http://www.zenoss.com/) for network monitoring. You can easily create graphs that will show you data for really anything. We monitor bandwidth utilization on all servers, network equipment, wireless, and all bandwidth entering and leaving the campus. Super simple to set up.