As of June 2012 AT&T will unlock your iPhone 4 or 4s ONLY IF:
1)You paid full retail price for phone, and you have receipt to prove it.
2)You completed your 24 month contract
3)You paid early termination fee
your account must be in good standing and yo can only unlock up to 5 iPhones per account(per year)
p.s. i had iPhone 4s, and after 48 minuted on the phone with at&t and NOT qualifying for unlock, i got the factory unlock.