Rumours point to a June launch for the iphone 3G. If could wait, maybe sensible to do so. Otherwise, safer to go with an O2 contract, as Apple will launch the v2.0 of the iPhone operating system which is likely to bring lots of enhancements, and the O2 locked phone ought to update to seamlessly.
I voted to wait for the 3G version - only because that's what I'm doing at the moment, the general opinion is that the 3G version will be out in about May/June but I have read that there are rumors that iPhones are now out of stock in New York and are not being reordered, bringing people to believe that it could be released as soon as sometime in April.
Can't see it myself but you never know with Apple.