The general criterion I would think is this:

**Does having this question remain open add anything that's not already covered by the other question?**

It's possible to have countless minor variations on essentially the same question, and arguments could be made that they are in fact different questions, but are they really?  If the original question contains information in it's answers that also answers the new question, then - IMO - it's a clear case of "close as duplicate".

This all depends on perspective.  For me, **close as duplicate is not a slap-down** and it's not harsh moderation.  It's actually something very different to those - it's actually a **valid way of providing an answer to a question**.  So when I vote to close as duplicate, I'm most definitely *not* saying "you stupid person, that's been asked before, ha ha"; what I *am* saying is "here, read this other question, it contains the answer you're looking for".

So although it might not seem so on the surface, closing as a duplicate is really just another tool to help someone find the answer they want.  That's a key distinction, and maybe it needs to come across more clearly in the stock text used for closing duplicates.