Appleinsider's Kasper Jade posts an interesting walkthrough with his experience trying to port an 8 year old Verizon mobile number over to the iPhone.
After multiple attempts and several calls through Verizon and AT&T customer support, he was able to find a solution that did allow him to transfer his mobile number in under 20 minutes.
He explains that his problem stems from a discrepancy between your current mailing address and the one your existing mobile phone is assigned.
For example: Say you lived in Cupertino three years ago when you opened an account with Verizon, but have since relocated and now live in Los Angeles. Since your mobile phone numbers area code ("408" in Cupertino) is now outside the region where you live (Los Angeles), AT&T's stubborn porting system software will decline to transfer your number.
The solution is to simply use your old billing zip code as your "usage" address.
For example: If your mobile phone number has a '408' Cupertino area code, but you now live in Los Angeles, tell iTunes you'll be using your phone in Cupertino by inputting a Cupertino usage address and zip code.
The discrepancy can be later resolved by a phone call to AT&T. (Screenshots/walkthrough)