I have just upgraded to O2 35 on an 18 month contract and got the iPhone 3GS (16GB) for FREE!!
600 UK minutes and 500 UK texts each month
Unlimited data and Wi-Fi (worth £15 a month)
Unlimited visual voicemail
Cheaper roaming rates with International Traveller Service (ITS)
Free itemised online billing
I called O2 cancellations on 08706003009 and told them that I was moving over to Vodafone. She asked what she could do to retain my custom so I asked for the above deal and I got it!
I know this kind of deal is hit and miss but it worked for me.
Give them a call and good luck.