For you, I have a long and short answer. Here's the short one:
Now, the extended version:
He tells you that you're overweight, and then says he's kidding? Yeah, tell a girl she's fat and then tell her to forget what you said. Real nice. Does he have no clue how much pressure girls are already under to look like impossibly perfect supermodels? Instead of insulting you and say he's kidding, why can't he compliment you and say he's serious?
Unfortunately, when a girl has a low self-esteem, she lets people walk all over her. She just assumes that this is the way she deserves to be treated, and the insults reinforce the negative image she already has of herself. On the other hand, when a girl has a high self-esteem, she refuses to be a doormat.
So, how do you build a high self esteem? You get it by respecting yourself and making smart decisions. For starters, you dump anyone who doesn't treat you with 100% respect and avoid guys like that in the future. You'll be surprised how good this feels.
Right now, I want you to look at a few things: For one, realize that you have chosen to put up with abusive language. You're not just a victim. Therefore, the real question is not: should you leave him? That's simple. The real question is: why on earth have you stayed with him so long? You really need to answer that question for yourself. Take time off for yourself, to re-establish your boundaries of respect and love. Let go of him, and hold out for a guy who will treat you like a queen. You deserve it.
If you want to prove your intelligence to your boyfriend, break up with him. It will show him how smart you really are.