I would personally go for the iPhone, but now wouldn't be the best time to buy one. Wait and see what happens when the iPhone 5 comes out, as it will give you a few options:
1. See what the difference in price is for contract/PAYG deals on the different versions, as it may be minimal. From memory, when the iPhone 4 came out they reduced the price of the 3GS (by a little) but at the same time also reduced the storage capacity making the difference not actually that big.
2. Buy a new or nearly new iPhone 4 from someone that's just upgraded but is desperate for the 5.
3. Buy a new or nearly new iPhone 5 from someone that's just upgraded but is happy to keep their 4.
Tesco Mobile do 12 month contract packages on the iPhone although the handsets won't be free. If you can afford to, you will generally be better off purchasing a handset on PAYG and using a sim-only contract.
For anyone who hasn't already heard of them, GiffGaff.com runs off the O2 network and has some pretty cheap PAYG bundle packages. For example, £10/month (with no contract) gets you 250 anytime minutes and 'truly unlimited' data/texts.