My son took forever to get off the bottle. I'm almost ashamed to admit it, but he was 4 before he stopped. Granted, he does have autism so has a much harder time with transitions than a typical kid, but it took a lot of work to get him off of it.
First, we stopped giving him milk in the bottle at night. If he wanted the bottle he could have water in it. Then we slowly started throwing out his favorite bottles, so he would have to drink water from a non-preferred bottle. Then we offered him the choice between water in a bottle or milk in a sippy. He went for the sippy for about a week before he decided he didn't like milk in sippies and could fall asleep without anything.