I'd agree with xtrmecarbon, your best taking all the above into concideration.
But then you've also got to ask yourself, on 02 for example: (Pay As You Go) iPhone 3GS your looking at £319 for the iPhone itself. From here you could go for a "Pay Monthly Sim" with 02.
If you go for a "12 Month SIM" your find your "Pay Monthly Sim" will cost roughly half the price than "Paying Monthly", as your an O2 Customer for an entire year. so for example i was paying £27 a month, i'm now only paying £15 because i'm with O2 for a year. obviously theirs extra charges if you go over your contract usage, same as all phone contracts.
This would cost you in total: £499 (Including iPhone 3GS, Black, 8GB) if you didn't go over your usage for £15 a month for example, now you could properly say for sure the iPhone 3GS will be around for another year at least, obviously were not 100% certain on that.
Question you've got to ask yourself would you rather save an extra £300 roughly, I'd suggest buying the handset on it's own, and doing a sim only deals, will work out cheaper in the long run..
Hope this advice helps!