I have a simple Apex Class, method execute() which reads every 5000 (Queries everytime for next 5000 leads) leads and applies business rules and update 200 at a time. but we have triggers on the Lead obj, so every update its increasing the limit and reaching the governor limit. Its not resetting for every execute or Database.update(). can you please let me know, Is there a way I can reset the transaction to start over the governor limits. Appreciate your help!
Use batch Apex as described e.g. Force.com Batch Apex and Large Data Volumes. This allows work over a large number of SObjects (or other objects) to be executed in batches where each execute method has its own set of governor limits.
Added after nvr's first comment:
You can run a sequence of batch Apex jobs - a chain - by starting a new job in the finish method of the current job (and so on). Typically, as well as implementing the Database.Batchable interface, you will also add the Database.Stateful marker interface so you can preserve state and forward it to the next batchable in the chain. This approach allows the jobs to be run one after another and so avoids hitting the concurrent jobs governor limit.
Do note though that batch jobs are queued and the processing delays and processing rate are at salesforce's discretion: progress may be slower than you expect.