AT&T iPhone 5: You can buy an IMEI unlock on eBay for about $5. This method is very simple. However, they recently made this illegal again, so it's only legal if the phone was bought before January 26th 2013. You'll have to wait until your contract is up if you aren't eligible for an IMEI unlock. AT&T will unlock it once the contract is fulfilled.
Verzion iPhone 5: They are sold factory unlocked.
Sprint iPhone 5: Have Sprint unlock it.
You can buy factory unlocked GSM models from Apple. They won't work on Sprint or Verizon. But they'll work on AT&T and T-Mobile and most world-wide carriers since nearly all of them outside the US use GSM.
I bought a used ATT iPhone 5 off someone and I have been using it fine with ATT (I'm still under contract).
I need to get it unlocked but ATT won't unlock it for me. Is it because I'm still under contract? But I didn't get the phone from them.
If you bought it used, this phone isn't under contract. However, AT&T typically only unlocks phones that they sold under contract, so you might not be able to get them to do it for you. I'd just buy one on eBay. As long as the seller bought it before January 26th, you should be fine. Do you know when they purchased it?