As I recently got an iPhone4 for work, I've been trying to make the best use of it - it already handles the instant messaging (mostly Skype), Nagios alerts (an XMPP client) and obviously email. And sometimes phone calls, microphone allowing. But I was still missing (at least) one thing that I had working on other phones: tethering.
As it turns out, others have had similar desires and come up with solutions. By now, the things needed for this is available in Debian Squeeze - the "test" release of Debian (which happens to be rock-stable), so installing the required bits is as easy as installing anything else:
apt-get install ipheth-utils
and switch on "Internet Tethering" on the iPhone. Then plug the phone into the USB port. The combination of linux kernel, ipheth kernel module (which is now in the mainline kernel, so no need to install ipheth-dkms), Network Manager and DHCP takes care of the rest :-)
Allegedly it is also possible to do over bluetooth, but I have not tried that yet. The phone tends to drain its battery within 36 hours, so the cable needs to be at hand anyway.
Note: Since this will send your PC's network traffic through the iPhone, additional data charges may apply. Buyer beware. Don't blame me.