Hi Lorne,
When uploading records into Eloqua, there is an Upload purpose called "Modify Email Address" Which allows you to do exactly that...update the email address of an existing record. With a standard Integration with some of the larger CRM systems (Salesforce, MS Dynamics etc.) we can leverage this upload purpose as seen in this article Jordo's Playbook: Changing Email in CRM . However I don't know that this option is available through the api (it may be, but I just haven't looked into it).
Since there is a form processing step that allows Email address change, one possible solution would be to
1) Create a form in Eloqua with the "Modify Email Address" Processing step and a field to capture old and new email
2) For all email changes, submit this form via api, passing the appropriate values.
This option may not be ideal depending on the volume and frequency of email changes.
If there is a high volume of changes, another option would be to push these changes to a csv file on an SFTP server and then feed them into Eloqua via a similar process as outlined in Jordo's Playbook: Changing Email in CRM replacing the data source of Salesforce with your SFTP server.
Hope that helps,
Jordan