At present, there is no one solution which can completely unlock iPhone. But hackers are moving toward making Apple's iPhone work with carriers other than AT&T.
The following iPhone unlocking way listed below is all FREE.
1)DVD Jon's solution for Windows
His Phone Activation Software allows the iPhone to be used for media playback and Web access via Wi-Fi without paying for the two-year service plan, although voice calling is not possible under the hack. His method does work but a little bit too complicated. You need to install several programs named PhoneActivationServerV1.0, UltraEdit, MS .NET Framework and you have to modify hexadecimal values.
More details: http://nanocr.eu/2007/07/03/iphone-without-att/
2)Unlock iPhone with one-click (Mac, Win)
It's been three weeks since the iPhone launch, but the iPhone unlock software can also NOT support unlocking iPhone for using other phone services. Why mention the program here? The software listed at DVD to iPhone site can activate iPhone easily, only one click is enough. Download and run, click 'Unlock iPhone' button, that is it. your iPhone will become a widescreeen iPod and Wi-Fi enabled device. At present, only Windows version is available. But, the Mac version and the SIM-card unlocking, iPhone GSM network unlocking function are under developed.
More details: How to unlock iPhone
3)Put old Cingular SIM in your iPhone and made it work (Intel Mac)
his procedure does NOT unlock the iPhone after doing this, it still remains carrier dependent. But you can now use any existing AT&T or Cingular pre-paid account (mine is from a contract that ran out) or any virtual operator's SIM card that uses the AT&T and Cingular network. This also works for corporate accounts.
This method is for those who live in the United States and can get access onto the AT&T network. Please send all inquiries about service to AT&T. I don't work for AT&T, so I can't answer account questions (I'm getting tons of them).
Steps: http://www.hacktheiphone.com/iphone_using_cingular_sim.html
If I find the better solution later, I will add here.