For years, Drupal sites that needed cool, customizable user profiles have relied on the Content Profile module to give each user a custom 'Profile' node. With the arrival of Drupal 7, it's possible to skip the middleman and add custom FieldAPI fields directly to the User entity! That's great news for purist devs who were frustrated by that extra, dangling node. The downside, though, is that Drupal 7 style User Entities can't take advantage of Revisions the way nodes can.
Well. They couldn't, that is, until User Revision module was released. User Revision turns Drupal user accounts into fully "revisionable" entities, with a browse-able log of changes made over time, and it integrates with a number of other useful modules to boot!
User Revision module provides a rich set of permissions, matching the ones core provides for node revisions. You can control who can view prior user revisions, whether new revisions are made by default, and whether a given user can override that default. Once you've installed it and set up its permissions, a new tab appears on user account pages, allowing you to look back at past iterations.
If you have the Diff and user Diff modules installed as well, account revisions can be compared side by side with the changed data highlighted. It's overkill for some sites, but if you're building out complex user profiles it can be a handy addition.
User Revision is a relatively new module, only a few weeks old at the time of this writing. It's well-tended, though, has two maintainers, and it's already seen a few official bug fix releases. It does something simple, and does it well!