Enable Native Tethering On iPhone 4, iPhone 3GS, 3G Using TetherMe
iPhone has a great feature, Internet Tethering, which allows you to use the device as a modem share your internet connection with your PC. However some carrier networks do not support it, and so the only option left to you is to jailbreak your iPhone.
You can jailbreak iPhone 4, iPhone 3GS, 3G on iOS 4,iOS 4.0.1 using JailbreakMe or if you have upgraded toiOS 4.0.2, then you can jailbreak iPhone 3G on iOS 4.0.2 using Redsn0w 0.9.5b5-5.
After jailbreaking your iPhone, search for TetherMe in Cydia, which is available for USD1.99 in the BigBoss repository and install the app. Once your iPhone reboots, go to Settings –> General –> Network to enable Internet Tethering.

TetherMe works with all iOS versions, by allowing tethering on any APN that is used for iPhone data. This means that your carrier should not charge you extra. The app bypasses signature checking and allows you to edit your carrier bundle manually to enable MMS functionality on T Mobile.
Currently TetherMe works with iPhone only, not with iPad 3G and also does not enable loading of APN configurations from .mobileconfig profiles.

SBSettings Alternative for iPhone 4S/iPad 2, No Jailbreak Required
How to Unlock iPhone 4S on AT&T without Jailbreaking
Save SHSH Blobs of iOS 5.0.1 for iPhone 4S with TinyUmbrella
Gmail App for iPhone, iPad, iPod Touch Available for Download
Enable FaceTime over 3G in iOS 5 [Jailbreak Tweak]
iTunes 10.5.1 for Windows, Mac OS X [Direct Download Links]
Jailbreak iOS 5.0.1 with Redsn0w 0.9.9b8