I also thought of this lately, shouldn't be too hard to do.
If your forum only allows unique email addresses, you can simply change the text of "Username" to "Email" at the login form and then before the login process you do something like (pseudo):
PHP Code:
// gpc['username'] contains the email entered at the login.
user = select username from user where email = gpc['username']
// gpc['username'] now actually contains the username, if match found.
gpc['username'] = user
That will make it so the email address is used instead of a username.