I suggest that you support the Mail-Followup-To header field. If a message contains this field, your follow-up function will use the contents of the field as the new message's default recipient list. In the absence of this field, use Reply-To (defaulting to From), together with To and Cc, just as you do now.
For symmetry, I suggest that you also support the Mail-Reply-To header field. If a message contains this field, your reply-to-author function will use the contents of the field as the new message's default recipient list. In the absence of this field, use Reply-To (defaulting to From), just as you do now.
Even worse, his address will be in the new To line. It will be copied into subsequent followups, so he will receive two copies of future messages. He won't be able to escape the discussion even if he unsubscribes! After a long chain of followups there can be dozens of extra addresses. Archive space is wasted. The To line becomes unreadable. Some software breaks.
Your follow-up function probably eliminates duplicate addresses. But it can't detect the duplicate here. Perhaps the original author isn't on the mailing list, and should receive a copy.
If you support the Mail-Followup-To field, you're giving the original author a way to handle this situation. If he's on the mailing list, he'll set up a Mail-Followup-To field showing just the list, without his address.
Mail-Followup-To also lets people redirect discussions away from inappropriate mailing lists.
If To or Cc includes a mailing list that the user is subscribed to, create the Mail-Followup-To field from To and Cc alone. You need to let the user tell you which mailing lists he's subscribed to.
You may want to warn the user when he views a message where he's not included in Mail-Followup-To. This usually indicates that the user has subscribed to a mailing list shown in Mail-Followup-To, but hasn't told you about that mailing list. Or it may indicate that someone is redirecting the discussion.
(Figuring out Mail-Followup-To beforehand, and then supplying it for the user to edit, doesn't work well. When the user modifies To and Cc, he almost always wants Mail-Followup-To to be changed the same way.)
Most existing mailers use Reply-To, defaulting to From, for reply-to-author.
Unfortunately, some mailing lists set up Reply-To to point back to the mailing list. This is called reply-to munging. It effectively destroys the previous function of reply-to-author. See the Reply-To Munging Harmful FAQ for further discussion. (Ironically, the primary excuse for reply-to munging is that follow-up creates duplicates. See the Reply-To Munging Harmful Forum. Widespread support for the Mail-Followup-To field will eliminate this motivation.)
Mail-Reply-To is simply Reply-To without the ambiguity.
Duplicate suppression is half of a solution to follow-up duplication. It certainly takes away some of the annoyance. Unfortunately, it still leaves the extra address in the To line, causing many of the serious problems described above.
Mail-Followup-To is a complete solution.
qmail 1.02 and above automatically create Mail-Followup-To for messages sent to mailing lists. This works with any UNIX MUA; the user simply has to put a list of mailing lists into $QMAILMFTFILE.
Mutt 0.89 and above automatically create Mail-Followup-To for messages sent to mailing lists. They also understand Mail-Reply-To and Mail-Followup-To in incoming messages.
nmh 0.24 and above understand Mail-Reply-To and Mail-Followup-To in incoming messages.
Shuriken 2.0 and above understand Mail-Reply-To and Mail-Followup-To in incoming messages.
Gnus/5.090001 (Oort Gnus v0.01) and above understand Mail-Reply-To and Mail-Followup-To in incoming messages. Oort Gnus 0.04 and above support Mail-Followup-To in outgoing messages.
Kmail (not sure which version) understands Mail-Followup-To in incoming messages.
SquirrelMail version 1.4.5 and above understand Mail-Followup-To in incoming messages.
Please let me know about any new implementations.