I've never missed paying the bill and have rarely called them to support my internet connection, but they'd rather get a new customer than keep me, even when I asked them to just match the new customer deal for me.
If that's the case you're simply doing it wrong.
Here is how you do it right: Call them up. Tell them that you want to cancel. When they ask why, tell them that $competitor is offering you a better deal.
They will balk and scriptedly explain that $competitor's service is inferior.
Ignore this and tell them that price is your primary motivation right now.
[...]
They've got a script, and you aren't the first customer to play through it. So use your own script, and stick to it. If/when you make it all the way to the Customer Retention department, they'll give you whatever you want to keep you around, and if all you want is a steep discount for a year they'll be happy to provide that.
And if they're not happy to provide that, tell them (again) cancel it. Rinse and repeat until you've got what you want.
And don't worry: It's much harder than you think to get a Customer Retention rep to turn off your service.
(In my experience this works for any value of $provider. Way back in the dial-up days I had free nationwide Internet for most of a year: Every time I called $provider to "cancel," they offered me another month or three for free, which I found to be fairly profitable based on my usual hourly wage at that time.)