Raise the reputation required to close, raise the number of votes needed to close, allow "anti-close" votes to keep questions OPEN, do not let someone answer AND at the same time vote to close (or at least force the answer to be community wiki so they can't whore points by reducing answer competition), etc.
Some or all of the above need to be implemented to prevent abuse of the system. It does the community NO good to close questions that are duplicate (yet perhaps the duplicates were old/outdated, or had poor answers, things change fast in IT!), questions that are not "coding" related but nevertheless important topics for developers, or even questions that are somewhat subjective yet developer-related. (Why have a voting system if every answer is black and white true or false???)
I'd like to know why some are so fast to close a question (killing sometimes very good and informative topics) and whether they actually think they are doing everyone else some kind of "favor" by doing so. I don't think the intent of Stackoverflow was to answer plain right/wrong homework coding questions. There are a lot of experienced pros here and like others I want to hear their OPINIONS on certain topics as well as receiving factual answers.