As you said, there are a few ways to act.
The one thing to remember, before we even debate what's the proper course of action, is to remember Stack Exchange sites are meant to be used:
It means that Stack Overflow is not just a historical record of questions and answers. It’s a lot more than that: it’s actually a community-edited wiki of narrow, “long-tail” questions — questions that aren’t quite important enough to deserve a page on Wikipedia, but which come up over and over again.
As such, having the highest quality answer possible is ideal.
With that in mind, how should you act?
I think there at least three defensible actions, depending on the situation:
- Adding a new answer.
- Editing the accepted answer.
- Adding a comment to the accepted answer.
Writing a new answer is the best choice of them all, provided you feel you can improve on the question. Even if the question is a few days old, and even if it's your own question, if you feel you can write a better answer than the accepted answer, do so. It doesn't matter if there is an accepted answer with several upvotes. We strives for the highest quality content possible. Better answers are conductive to that goal. So, if you feel that you can improve the accepted answer in various ways, do that.
With that said, if all that you can contribute to the answer is to add a source backing up a claim, that's different. Then, the choice becomes slightly tricker but I think David answered that beautifully (again):
Editing is always rather delicate, but I personally endorse it, and I hope we can create a culture where it's completely accepted. After all, if it adds to the answer, the guy writing it is likely to get more upvotes for it, hey?
If you can add a source to someone's claim, I would say to definitively go for it. Altering someone's words is always a delicate situation, but that's not what you're doing here; you're just adding a source. You're inarguably improve his or her answer.
We should cultivate a culture where this kind of action is considered acceptable. If someone has a problem with that, I would say this site may not be for them:
Like Wikipedia, this site is collaboratively edited, and all edits are tracked. If you are not comfortable with the idea of your questions and answers being edited by other trusted users, this may not be the site for you.
In this case, the user is Fabian. You're highly unlikely to face such problems.
Finally, if you're not sure what to do, leaving a comment on the accepted answer is the safe answer at all times. Comments on Stack Exchange are second-class citizen, though. Ideally, you want to improve the answer over leaving a comment.
So, in summary:
- Add a new answer if you can make meaningful additions.
- Edit the answer if it's to add a source (or a better source).
- If you're not sure, or feeling lazy that day, add a comment.