ntop can do this, but it doesn't run exceptionally well on FreeBSD because of threading bugs in ntop that the author doesn't care to fix.
Plus, if you're running VLAN's, ntop requires putting your interfaces in promiscuous mode. There's a bug in FreeBSD that will cause all your VLAN's to drop if you put a VLAN interface in promiscuous mode.
This capability is really there already, you just need to collect the appropriate data and then report on it as you desire. What you need to look at is the pfflowd package, and you need to get a NetFlow collector running on something. For a quick solution, check out CactiEZ, it comes preconfigured with an awesome Cacti install plus a NetFlow collector enabled out of the box. http://cactiusers.org/wiki/CactiEZ
After you have the NetFlow stats collected, there are a bunch of reporting tools that will show you your NetFlow data, including ntop, which runs on CactiEZ (and works fine since it's Linux-based).
Nice list of NetFlow related tools here:http://www.switch.ch/tf-tant/floma/software.html
Personally, for my network monitoring at home, I run a CactiEZ install in a VM running on VMware Server. Works great.
Is this answer worth $200?