This module disables the "Username" field on user registration and user edit forms and generates a username automatically using a token or module provided pattern. The pattern could therefore be based on other profile fields (like first/last name), a regex version of their email address or a random string.
This module is complimented by logintobogan, which allows users to login with their email address (and therefore makes usernames redundant for the user, but of course still necessary for Drupal's backend - where auto_username fits in). The realname module also compliments this module, because it ensures any username displays are displayed as "Firstname Surname", which may be easier to read.