There are a couple of things you can do.
1) Look out for changes in your contract in the near past/future. Any major changes mean you can cancel the contract with no penalties (as they are in breach of contract)
Really? So say they gave more mins for the same price, would that work?
2) If you don't have very long left on your contract you can ring up on o2 and ask them to buy out the rest of your contract. (yes, this does happen, surprsing as it sounds. You would presumably have to go on a pretty hefty tarriff though)
Again, really?! I might give them a ring then!!