I always thought this was a stupid question. As an interviewer, you have no way to tell the difference between an honest answer and a carefully prepared one. As a candidate, it is in your best interest to prepare a false answer to this question.
If you're feeling really confident, you could tell the interviewer this. If I was the interviewer, and a candidate told me my question was stupid, and gave me a good reason why, I'd be inclined to hire them. That sort of behavior is something I really need in an employee: someone who will tell me when I'm making a mistake. It also shows that you've thought (at least a little) about how to conduct a good interview, and all employers need good interviewers.
That said, it's a good question for you to ask yourself. The problem, of course, is that most of the time we have a hard time seeing our weaknesses clearly. If you aren't seeing your weaknesses, then you need to look a little harder.
Knowing your strengths, and how to play to them, and your weaknesses, and how to stop them from being a problem, makes you much better at the job.