I was thinking about this issue from time to time but I didn't know whether it really exists or just an speculation on my side until today when I woke up [!], I saw a very old answer of mine which was correct at that time and had a couple upvotes downvoted (in the meantime I'll leave that answer unedited for the sake of discussion; note that this is just a sample. I'm not asking "how to deal with this specific answer." The question is completely general as it's nearly impossible to keep track of all of your answers to see whether they require updating or not). While the downvoter didn't explain a thing, I suspect the reason is that the answer is no longer applicable (It's one of the new features in iPhone OS 3.0). As we go to celebrate a long sequence of birthdays for Stack Overflow (hopefully!), we're going to see lots of answers become obsolete. How we're going to deal with this issue?
If the answer is outdated or no longer relevant either delete it or update it so it is relevant.
If the question is no longer relevant or outdated either edit it to reflect that it was relevant or change it to be relevant or vote to close it as no longer relevant.
Some of this depends on the reason for the change. For example, what's relevant to VB.NET 3.5 now is not necessarily what was relevant to VB.NET 2.0/1.1 or, God forbid, VB6. Those answers however may still be relevant to people who are still developing for those systems (and yes they have my condolences) so rather than delete it or update the question to whatever is current, it might be most appropriate to make sure the question and/or answer reflects that this applied to an old version.
You could say "For version X, it works like this but for version Y this is no longer relevant because of new feature Z".
In the case of iPhone OS, it's probably best to delete things that applied only to iPhone OS 1.x/2.x because they don't stick around in quite the same way that legacy operating systems and frameworks do. You are almost required to upgrade your iPhone OS and you're somewhat foolish if you don't (barring teething problems).
A huge issue that this thread is revealing is that "obsolete" is a subjective thing.
Many of the suggestions here suggest ways of "Correcting" a currently posted question, but if we agree that the corrections themselves are subjective, it's not appropriate in all situations.
As Nagul suggests, I believe that the best solution is to implement a simple visual design system that passively addresses the problem.
Perhaps the simplest way to do this is to provide more emphasis for the Date of each post. It's a critical piece of context that's difficult to see at a glance, that helps someone arrive at their own opinion of how timely or relevant a topic is.
Yes, the date appears on each post, and yes, the sidebar text reading "Active 3 years ago" does help on this front, but I believe that this context is important enough to emphasize more.
How about an implementation of one of the features found in source control systems - paint the questions and answers different shades of a color to represent their ageing.
For a more proactive approach, implement a feature to allow users to provide version info with an answer. This is something I do with my blog posts because I see the same problem all over the web, especially with technology blogs. However, I'm not sure this will work on a large scale.
Speaking of out-of-date answers, now that you can't change your up-vote/down-vote after 5 minutes, only new eyes can add new votes to an answer, until the answer is edited.
So an answer that was correct and got up-votes for it, but is now wrong, will only get down-votes if new viewers notice the problem.
Of course comments can (and in this case should) be added by anyone to (a) notify others the answer is no longer valid, and (b) notify the original answer author to update the answer.
The idea of SO was from the beginning to provide updated answers and get rid of these which are out-dated. Joel mentioned several times on the podcast, that he wants to solve the issue, that you cannot recognize easily, that a googled answer is not the appropriate solution to your problem anymore.
For your example answer this means, if the information provided is obsolete, the downvote was correct. If you do not want to spend the time "maintaining" old answers (which is comprehensible), the downvotes ensure that the obsolete stuff is dumped to the bottom. It's the quality assurance of the system. If you do not want to deal with them, just kiss them goodbye.
Future-proof your answers/questions where you can without making it a nuisance of noise in the now.
Throw about caveats all over the place, drop those version number hints like you've got the fuzz on your tail.
And if you can't be bothered, get the scalpel out and slice that dead answer/question off as no longer relevant.
This also occurs with hyperlinks. Over time these will break or the information change, perhaps becoming less relevant to the original answer/question. This may be a particular issue with quick early answers that are often the ones upvoted or accepted.
Perhaps we should promote an ethos where someone who uses a hyperlink has a (moral?) obligation to check the continuing validity of links and repair them or, with suitable attribution, embed information directly.
I don't believe that any of the existing mechanisms is sufficient. Therefore, I have filed a feature request: