Honestly - I think babies will do it when they're ready, but you have to give them the chance to try. And accept that it wont always happen.
With DS I fed/cuddled/rocked to sleep. We tried pick up put down which failed. So when back to feeding/cuddling/rocking.
From about 6 months (as I read most babies could self settle on occasion from then if nothing was wrong) I used to feed him slightly earlier so he was less likely to fall asleep on me then put him down in his cot with his comforter. Sometimes, if he didn't have wind, he'd wave it around then fall asleep. I'd stay in the room (it was dark) making a little bit of noise e.g moving his clothes into his drawers so he knew I was there. First time was around 7 months (I remember because we were on holiday). It wasn't very consistent so I'd go back to rocking.
Then as he got older, he seemed to get wound up by the cuddling/rocking so I'd put him down and pat or stroke his bottom (he sleeps on his front, has done since 5.5 months) and that would work. Then I'd put down and leave (stay in the room) more regularly.
From about 14/15 months (or so), he would babble away so I would say "night night sleep time" and leave the room. He'd shout for a bit - few minutes then fall asleep. If he was upset, I'd go back in. Gradually withdrawal doesn't really work for us as he'd keep looking for me. Plus it's lights out anyway. He seems to prefer it when I leave or if I stay. Now at 21 months, I can put him down and leave or sometimes I have to stay and keep my hand on him until he relaxes.
The times he doesn't self settle it's because he;s ill or has wind or some discomfort.