Who should the onus fall on to check if a question has already been asked, the person who asks the question (who may not have much background in the question they are asking) or the person answering the question (especially if they give a different answer to those previously presented)?
The onus falls on everybody. Anyone can point out that a question is (or appears to be) a duplicate of a previous one.
That being said, we do expect the poster to do some prior research, which includes checking related questions that already exist on the site. If those pre-existing questions are closely related, the onus is on the asker to make it clear how what they're asking isn't already covered.
The reason we close duplicate questions is to try and make it easier for visitors to find answers. The site search isn't stunningly good at the best of times, and if a search for do masses fall at the same rate produces dozens of hits for slightly different questions that only makes matters worse.
But posting a duplicate isn't an offence and there's no sense in which we punish OPs for asking a duplicate, or punish site members for replying to it. I get the impression some members will downvote a question on the grounds it's a duplicate. This isn't something I would do, and in fairness the downvotes may simply be to remove the question from the home page and not necessarily indicate disapproval. Note that neither the OP nor any answerers lose rep if a question is closed as a duplicate.
I tend to be pro-active in flagging duplicate questions, but that's mainly so the OP can see what has been asked before and decide if they are asking something new or whether their question is a duplicate and the close vote is justified. If the OP objects I'm generally happy to give them the benefit of the doubt and withdraw my close vote.
I don't think duplicates are necessarily bad, as long as they aren't exact duplicates. Similar questions may actually be exploring slightly different issues. It may also be the case that the answers to a previous duplicate have emphasised one aspect of the question and I feel it's worth starting again to provide an answer that highlights a different aspect.