One of the challenges with this interview question is generally how people interpret the word "weakness" on a personal level as opposed to its application in the employment arena. Interviewers are not looking for you to reveal character flaws, negative habits, or general personal difficulties. "I'm a sucker for a pretty face, I tend to party too much on the weekends, and my giving spirit usually leads to me being taken advantage of by others" isn't any more of an appropriate response then it would be for you say, "I'm a mean tennis player, my credit score is in the 800's, and I cook a delicious lasagna" when asked about your strengths.
Asking about strengths and weaknesses is identifying what about you is a good fit for the specific job and what about you may need some additional work to make it a good fit. The context is your suitability for the job being offered, not your general struggles in life. In fact, a better description of it would be a strengths and "needs" assessment as opposed to a strengths and "weaknesses" assessment.
So, talk about what you have to offer and how you can successfully fulfill the job requirements. If asked about "weaknesses" (needs) talk about what in the job you might find challenging and how you plan to overcome those challenges. For example, if you've never managed people before, but you are interviewing for a management level position, you might mention that you know evaluating employees and on occasion having to discipline or fire someone could be difficult depending on the personalities involved, but you feel that with your positive communication skills and your attention to detail that you will be able to adequately meet this new challenge.
Some might say that this is the wrong approach (don't be negative about yourself in an interview), but the employer has your resume, they already know you've never been in management before. Your answer isn't giving them any new information, instead it's demonstrating positive assessment skills and a willingness to meet challenges head on.
The bottom line is when you apply for a job, you already know what parts of that job will be new, different, or challenging for you. Don't be afraid to identify those needs (weaknesses) and go in with a plan, prepared to discuss how you will rise above them.