It's so exhausting to be in your situation. And I know that you are not feeling your best when you are so tired all the time.
I know exactly why he won't self soothe...you said it yourself. "I just gave in and rocked him to sleep." Your baby knows that if he keeps crying and crying, eventually Mom will come. So, of course he's going to continue to cry.
If you want to get some sleep, you have to break this cycle. It won't be easy!
I'm a big believer in this method. It worked for me with three children and they are all great sleepers to this day. It takes about three nights, and they will be long nights, but if you stick with it, you can do it.
When you put your baby down for the night, you lay him in his crib and say goodnight. Then, you sit in the corner where he can see you. He'll look at you and cry. It may be hard for you, but just hang in there and don't pick him up. Occasionally, say something soothing to him, or walk over and touch him, but don't pick him up.
This will be a long night, because he may continue to cry for a long time, but be strong! Eventually he will wear himself out and go to sleep.
The next night, you put him into his crib, and you will sit in the room, but where he can't see you. So, sit in a corner of the room where you out out of his line of sight. You can still talk to him, or sing to him, go to see him once, but don't pick him up. This lets him know that, even if he can't see you, that you are still nearby.
Again, it may be another long night. But it won't be as bad as the first night. He's starting to self-soothe already.
By the third night, you should put him in his crib and then walk away. You can come stand outside his door and talk to him a little bit, but by now, he should know the routine. He may still cry, but he will cry less every night.
He may continue to cry for a week or so, trying to get you to come pick him up, but if you stick with this method, he will learn to soothe himself to sleep, which is a priceless skill.
I wish you luck. http://keystosimpleliving.com/kids.php