After looking for a competitive pay monthly deal since August, O2 (cancellations department) finally offered me a FREE 32GB iPhone 3GS on the £35 per month contract over 18months. A saving of £279 on the handset if I was buying it as a new customer!
Call 202 (free) from an O2 mobile phone to get to O2 customer services.
It might not work for everyone, but its worth a try! Maybe try and get a few free accessories aswell, something I forgot to do in my excitement at finally getting a half decent iPhone deal.
EDIT: This is NOT a refurbished phone