How can I tell which application is using the network?
Firewalls
You could use Little Snitch or HandsOff. They are great firewalls and both have a &quot;Network Monitor&quot; feature, that will do the job:

Little Snitch includes a Network Monitor, showing detailed information of all incoming and outgoing network traffic.
A status icon in the menu bar provides a summary of current network activity, and a monitor window with more comprehensive information pops up automatically in case of new traffic events.
Hands Off is an application to monitor and control the access of applications to your network and disks. Being able to monitor the normally unnoticeable activities enables you to make informed decisions regarding the transfer of your private information, hence avoiding confidential information leakage.

 
The network monitors of: Little Snitch (left), HandsOff (right)
Nettop
A free and built-in cli solution (unfortunately it is not included in Snow Leopard) would be nettop. nettop groups traffic by program and port and measures various network statistics.
Other
There are few other programs, that capture and measure traffic (iftop, wireshark, tcpdump), but they don't know the originated pid. To make the connection you should use netstat.