I've typically limited lengths to 64 characters or 128 characters (just because a power of 2 is geekier) and have yet to hear of it being a problem, but I suppose if you want to guarantee that you never reject a valid one, you'd need to make it 320.
My guess is that the only times you'd see email addresses even approaching that length would be if they were used for special mailboxes for some sort of programmatic interface, rather than as personal mailboxes (simply for the reason you mentioned: the need for the address's owner both to remember it and to pass it along to others); so it would probably be safe to leave your maximum at some more reasonable value. Then again, it really doesn't hurt much to set the maximum to 320: if it's a varchar(320) field in your database, the field will still only need as much memory as is actually required for the number of characters entered (plus the couple of bytes of overhead you have for each field, anyway).