Allow list subscribers to update their email addresses?
Creating such a profile is fairly straightforward.  The (potentially) hard part is for CiviCRM to know who the person is.  You have three options:


If your users can log into your site, then the site will know who they are.
If you can trust your users to enter their data correctly, you can give them a blank form to fill out and configure your Unsupervised Dedupe Rule to identify the record that needs updating.
You can create an email linking users to the profile using a URL with a checksum token.  These can be a bit confusing to add to your emails for non-technical folk, in which case you may want to install the Fancy Tokens extension, which gives a nicer user experience.


As for the form itself, you can use a profile, or if you need something fancier you can use Webform with CiviCRM integration (if you use Drupal or Backdrop) or Caldera Forms CiviCRM (if WordPress).

If you haven't created a form like this before, and you aren't a documentation learner, you can find videos on YouTube covering CiviCRM profiles.  

It often helps to include first and last name as read-only fields, it helps folks understand that the system knows who they are.