How do I tell my boyfriend it's over?

So, I cheated on my boyfriend yesterday. I know that's bad but I really want to break up with him, I've wanted to for a while..and in my mind we are already over. The situation is that he was doing a ton of heroin and right now is in rehab for it. I have no way to talk to him til he comes back. I was going to break it off before he went but I felt if I broke up with him he wouldn't have gone at all, and he really needs the help(he was shooting up to 6 times a day). He was awful when he was using, not himself at all, and he knew how much it upset me, but it meant nothing.

He's a really manipulative person, and he told me before he left "I will need you when I get out..without you my life would be pointless and all I will want is a needle in my arm." He has also told me in the past that our relationship is "perfect" except for his drug use and that if I think he's bad, I should see how other guys treat girls. They will treat me like sh*t. And I'll end up begging him to take me back.. The guy I was with yesterday was really sweet and great to be around, doesn't do drugs, has a steady job and can take care of himself. My boyfriend...ehh not so much.

The thing is he has hurt me so many times, lied to me, stolen from me, and just..ruined the feelings I had for him. He is my first real boyfriend, we've been together since April. I really did love this guy, but I can't take his bullsh*t anymore.

Anyways, I am trying to decide the best way to tell him it's over. He gets home on the 28th. I don't want to hurt him, but I just can't take the stress of dating an addict anymore. The problem isn't just going to go away since he went to rehab, he's been before and obviously its still an issue. Also I'm 19 and he's 25.. I'm too young to be dealing with all this! Any suggestions on the best/easiest way to end it?