The iPhone Dev-Team has released their latest ultrasn0w 1.2 unlock which can unlock iPhone 4 on baseband 01.59.00 as well as iPhone 3GS and iPhone 3G running iOS 4.2.1 firmware. To make this work on iPhone 3G / 3GS, you need to be on the 06.15.00 baseband. If you are currently on baseband 05.14.00 or 05.15.00, you need to update to 06.15.00 by following our guide here and then use the following easy steps to unlock your iPhone 3G or iPhone 3GS on iOS 4.2.1 with ultrasn0w 1.2.
Note that ultrasn0w 1.2 can unlock a jailbroken iPhone on the following baseband (modem firmware):
Step 1: Once you have the required baseband on your iPhone, open up Cydia and tap the Manage button at the bottom.
Step 2: Now tap Sources, press the Edit button on the top and then tap Add.
Step 3: Type the following repo address in the sources field:
Step 4: Tap Add Source and wait for it to upgrade.
Step 5: Now make a search for ultrasn0w (sn0w with a zero not an O) in the Search tab at the bottom. Tap it and press Install at the top.
Step 6: Wait for it to install and then re-spring or reboot your iPhone. When it restarts, you should be able to use it with any carrier you want!