I interview people extremely often, for professional positions. I had a candidate give a response to that question awhile ago, and his response was very good. Regardless how you answer, make sure you add how you work around that weakness, or use it to your advantage.
His answer was something like this:
My biggest weakness is procrastination. I HAD a habit of putting things off. The only way I can combat this is to be extremely organized. Every day, week, and month is planned. For example, if I have customer calls to make, every Mon, Wed, and Fri from 8am to 12pm I make those calls. Barring an emergency, that is the only thing I do at those times. I do the same thing every week. When things come up that need to be done, I write them down. Every night before I go home, I plan the order and times I am going to complete those tasks the following day or week.
Therefore, as a result of my biggest weakness, I have developed one of my largest strengths. I'm organized and punctual. Probably the most organized and punctual person you will ever meet. Because I have to be.
I don't remember it verbatim, but it went something like that, only longer and in more detail. I hired him, and it turned out to be a crock of toejam, but he's still very good at what he does.