It depends how your contract is constructed. I was working how a long time on single contract, but I've never signed any contract for undefined period. There was always a fixed-time agreement (3 to 6 months) which was prolonged on the end of the period. So every such prolongation is de facto occasion for renegotiating the deal. If you have undefined-period contract, it could require to break that contract in order to change it. If such breaking requires mutual agreement with client, you're in the weeker position.
But independently of formal things with contract, each renegotiation must be accepted mutually. And it's much much easier to ask for higher rate when signing new contract with new customer, than to renegotiate the existing. The customer knows you and is used to that, how much your hourly rate is (which usually results in impression, how much your work is worth for them).
I would look for some objective factors for increasing the rate. If you learn new things, it's not enough per se, because it doesn't affect directly the customer, as long as you do the same things as before. But if your responsibilities in the project change, that's the good point. For example, if you were only programming middle tier, and now you're responsible also for writing SQL queries and tuning database, it's a great point to say that your new tasks are requiring higher qualifications and therefore should be also better payed.