We did the 'gradual retreat method' to go from bf to sleep to going to sleep on own and 'gradual reduction' to stop bf at night altogether. It took quite a while but was well worth it in the end and did not involve a huge amount of crying (20mins was the longest) and he was never left alone to cry.
The HV lent me a book called 'Teach your child to sleep' published by Hamlyn and written by the Millpond Clinic. It had lots of suggestions and we picked the one we liked the best.
Anyway. It went something like this...
First three nights instead of rock to sleep we held to sleep, then I led next to him on a mattress on the floor in his room until he fell asleep cos we could not make the transition to the cot, then into cot where I held him / comforted him the best i could, then stroked his back and ssshed him, then put my hand on him , then sat by him, then sat a little way away, then at the back of the room, then just outside the door with door open, then just outside the door with door ajar and now in another room! Each transition took between 3 and 7 days and we would (and still do) take a step back if he was ill, teething, away from home, etc. We had a large blip when I went back to work but sorted it out eventually. He is now pretty consistent in 11 hours a night and will usually go back to sleep if he wakes at night with a ssshhh and a back rub.
To give up bf I lengthed the time between feeds by 15 minutes every 2 days and usually used the method to get him back to sleep that we had been using successfully before rather than the method we were learning to get him to sleep in the evening. He was eating well in the day and once we had stopped the bf to sleep in the evening I realised it was not that he needed bf but just that was the only way he knew how to fall asleep. If I had felt he was genuinely still hungry I would have waited a little while whilst increasing the day time food but he did this naturally.
I am sooooo glad I used this method but it does take a long while.