Unfortunately the approval process email system is rigid. It always requires an email to be sent out and it has to be the same email throughout the entire process.
One way you may be able to get around this is to use multiple approval processes. You can key these approval processes off of a hidden picklist with the different stages of the approval process. You would then be able to update that picklist whenever an approval or rejection occurs. In order to catch that change, you could use a trigger that checks the picklist value and submits the approval process programmatically.
So, essentially, you manage the approval process using a picklist value that you update with a Field Update based on the process being approved or rejected. When that field changes, you can use a after update trigger to programmatically submit the approval process again. If you correctly manage entry criteria into your approval process, you will be able to submit specific approval approval processes all with their own email template.
Here is a good article Jeff Douglas wrote on how to programmatically submit an approval process - http://blog.jeffdouglas.com/2010/01/04/automating-salesforce-approval-processes-with-apex-triggers/