You're in more than a rut with your boyfriend. Not only won't he put out sexually, he refuses to give to you on any other level either. You're dating a passive aggressive.
Passive aggressives express their anger by not giving what you want. This problem isn't going to get better; in fact, it's only going to get worse because the more you become angry with him, the angrier and more withholding he is going to become in response.
If you are truly done with being done to, then you have only one choice. Call a spade a spade by calling him on what he's about. Tell him that he withholds instead of telling you his anger directly.
He'll deny this, of course, since the pattern I describe is largely unconscious. Nevertheless, if you are serious, you must demand that he go into individual therapy and couples therapy with you.
You should also go yourself in order to understand why you keep choosing men who hurt you. When you resolve your own issues in this area, you will send out a different message that will get you treated better, either by him or by the next guy you're with.
Let me know the result of your confrontation.