I don't know about a comprehensive list, but in general the question one should ask one's self is:
Does this post (be it a question, answer, or even a comment) contribute to the community?
The scenarios you describe, where a better answer exists or an answer has been downvoted for good reason or is shown to be misleading/incorrect, are definitely good reasons to delete something.
That's not to say that you should delete any answer which is beaten by a "better" answer. Your answer may not be the most upvoted, it may not be accepted, but it may still very well contribute to the community.
- Maybe you added a piece of information not present in the "better" answer.
- Maybe you presented the answer in a way that's a little easier for a novice to understand.
- Maybe you approached the problem from a different angle which revealed more complexity in the problem than was previously identified.
- Maybe your answer isn't the best answer for the person asking the question, but it does provide insight and information on the subject which may be useful to someone who finds that question days/weeks/months from now facing a similar problem.
As for deleting a question, that's certainly a less common case. More often than not (I'm guessing), questions are deleted by mods than by the people who asked them. But the same overall guideline generally applies (with the exception of rules against deleting, such as if good answers have been provided for the question).
If it doesn't provide any value whatsoever to the community, delete it.
- Maybe you've re-thought the problem and it turns out you didn't understand it well enough to ask a meaningful question in the first place. (Consider an edit to the question first, of course. But it's possible that the entire premise of the question just doesn't really make sense. In that case, feel free to delete.)
- Maybe you've discovered that the question is actually a duplicate (while researching the answer on SO, naturally) and isn't popular enough to get close votes. And maybe the original question provided you with your answer. If that's the case, go ahead and delete it. (And don't forget to upvote the original question and useful answers.) Edit: See @Daniel DiPaolo's answer for more insight on this. There are plenty of options for dealing with questions.
etc.
It's really a case-by-case basis and there's a lot of overlap between good questions and answers on any given topic. If the content is good, regardless of the presence of "better" content, then keep it around. Even if it has low votes, low views, etc. Good content is always welcome.