I've got a question out which has an answer I am willing to accept but which is along the lines of "I don't know for sure, this may be it...". I don't want to accept it too early in case someone else comes along and either knows or is willing to do some offline research. What is a good wait time before I accept it? Maybe a week?
I'd like to propose a different rule of thumb, based not on your question, but on when you first recieve an answer you feel is 'acceptable'.
If you see an answer to your question that satisfies you, I suggest waiting 2-3 days after this answer is posted before accepting it, to give others a chance to finish composing answers-in-progress.
Keeping in mind that if a better answer is posted after this, you have full capability to immediately switch to this as your accepted answer.
2-3 days may seem like very little time, but consider that if you wait much longer, the question is likely to fall off the front page if no new answers have been posted, and that if you see a better answer posted after this, you are free to 'reset' your timer and wait to see if an even better third answer is posted before accepting it.
This way, a question that generates many good answers will stay open for a long period of time, while a question that immediately gets one definitive good answer will have that answer accepted in a timely manner and before the question goes 'stale'.
I think a week is a pretty good period of time to wait before accepting answers. It gives people time to compose really excellent answers -- you never know when you'll get a really awesome answer to your question, after a few hours have passed. Meaning, don't feel compelled to accept an answer because it's the first one posted, or because it's okay (but maybe not brilliant).
The goal of Stack Exchange is to provide excellent answers to good questions, which is why I sit on accepting answers to questions for at least a week (To be honest, I'm terrible at going through my questions and picking an answer, so don't use me as a mentor, but really a week should be sufficient.).
I use a sort of sliding scale to determine when to accept an answer. Basically, the more complex the question, the longer I wait before accepting an answer.
In rare instances in which the question is exceedingly simple and easy to answer, I might accept an answer almost as soon as it is submitted. This doesn't happen very often.
Speaking very broadly, I have found that most of the time, I wait for a little less than a week, and in all but a very few cases, the waiting time was between two days and one week.
As you mentioned, the obvious downside to accepting an answer right off the bat is the possibility (probability) that in doing so, you are inadvertently discouraging people from posting new, potentially better answers. So you are trying to balance the desire to accept an answer (which just feels good for some reason) with the desire to accept the best possible answer, which might not appear very quickly. As such, I try to give people a reasonable amount of time to see the question and respond before I click the check mark.
Of course, no matter how long you wait, there is always the possibility that someone who can do a better job of answering the question will see that an answer has already been accepted and pass by without posting, but I don't think that happens very often - here's why:
I think the people who are most likely to be able to write a great answer are also the people who are most likely to know that accepted answers can be unaccepted in favor of a better option. On top of that, I suspect that these people are also likely to care more about offering the best possible answer than they do about getting accepted. Thus, they will hopefully submit an answer, either because they hope that the currently accepted answer will be dropped in favor of the new one, or because they don't care about acceptance, and are solely interested in providing the right answer.
I would say that you should give it at least a few days. There's no rush to accept and you never know what another user is going to come up with, even if an earlier answer seems definitive.
I've personally posted answers that have been rapidly upvoted and accepted, only to read a later comment or see a subsequent answer that shows my answer to have been completely wrong or totally obsolete.
If you rapidly accept, you limit the interest for other users to answer and you may miss out on an even better answer that comes later. I'll happily admit that I'm far less interested in crafting an improved answer for an already accepted question than one that's still open.
I am starting to think that a rule to "wait x number of days" before accepting is a little too simple and needs refining.
Two days ago I asked a pair of questions: the one mentioned in my question and a popular one about Star Wars. The activity and popularity of these two questions is very different: the first currently has less than 100 views and was only active on the first day, but the second currently has over 5k views and is still getting answers and comments within the last day. I'm not surprised by this difference (Star Wars is much more popular than the Bolo books) but seeing the stark contrast between the two questions leads me to believe that the wait time before accepting an answer also depends very much on the popularity and activity of the question.
While a week is a good rule of thumb to wait for the average question, a particularly unpopular question does not require as long of a wait while a popular question would benefit from a longer wait. A few days' wait is still necessary for even the most unpopular questions, but popular questions could benefit from waiting for perhaps multiple weeks.
Put another way, perhaps the rule of thumb is to wait until the question has not been active for about half a week. If the question hasn't been active for half a week then a user will have to search for it in order to find it, and such a user is probably interested enough to post an answer even if there is already an accepted answer.