The Dev Team just released their unlock for iPhone 4.3.1. This updated version of ultrasn0wbrings support for the iPhone 3Gs and the iPhone 4 that are exclusively using these basebands: 01.59.00, 04.26.08, 05.11.07, 05.12.01, 05.13.04, and 06.15.00.

In this post, we’ll guide you into unlocking your iPhone 3GS or iPhone 4 on any of the above basebands, and running the latest iOS 4.3.1…
First, you have to make sure your iPhone comes with any of the baseband versions listed above. If it doesn’t there isn’t much solution for you at this time.
If your iPhone is however running any of those versions, you can easily update to iOS 4.3.1 while preserving your baseband, which will allow you to unlock using ultrasn0w 1.2.1.
Step 1: You will first have to jailbreak and update your iPhone using one of these methods:
Step 2: Once you are updated to iOS 4.3.1, launch Cydia, go to Manage > Sources > Edit > Add,  and type in the following repo: http://repo666.ultrasn0w.com. This will install the ultrasn0w unlock on your phone.
Step 3: After installing UltraSn0w, make sure to reboot your iPhone.
At this point, you can insert a different SIM card. If you install T-Mobile, make sure to disable 3G in Settings > General > Network.
Thats all there is to it. The whole jailbreak+unlock process is fairly easy and shouldn’t take more than a few minutes.