I asked this question and got a few answers that I think partially address the issue, all about equally well, but none that probably cover the full range of the issue. I hate to leave the question unanswered for too long though. What is the right thing to do in this case?
I'd leave the question open a bit longer and wait to see if you get a better answer. Also, you should respond to the existing answers through comments to see if you can tease a more complete answer out. Often, users will edit their answers to respond to your comments. This creates a triple win: a win for you because you got your answer, a win for the answerer because their improved answer will get more upvotes ( and eventually a checkmark from you), and the random visitor from google will get a better answer when they search. Just make sure you don't stray too far away from the original question as to cause the question to fundamentally change.
I see no harm in leaving it open for a while longer... You can accept at any time, why rush it?
There is absolutely nothing wrong with delaying the acceptance of an answer or even refusing to accept any of the existing answers. A lot of people think that the green check mark is the be-all and end-all of a Q&A site, but really the community votes are what matter the most.
Members are encouraged to consolidate what appear to be partial answers into a single comprehensive answer. Yes, really - go ahead and snatch other people's answers and earn some easy rep (just don't actually plagiarize).
I don't see anything wrong with doing that even if you were the one that asked the question. You don't get the +15 or +2 for a self-accept, but so what? You want the best possible answer to show up at the top of the list, and if you feel that you can produce a better one than any of the others, go ahead and do that (and accept it).
From the FAQ:
When you have decided which answer is the most helpful to you, mark it as the accepted answer by clicking on the check box outline to the left of the answer. This lets other people know that you have received a good answer to your question. Doing this is helpful because it shows other people that you're getting value from the community. (If you don't do this, people will often politely ask you to go back and accept answers for more of your questions!)
By all means, give it time, let people improve their answers, and don't accept something which really isn't a good answer. But at some point, when nothing's changing, if there are multiple good answers, it's probably best to accept whatever you decide is "most helpful". Just be sure to upvote all the other good ones!