A good support champion is able to provide lots of CC's, as well as buffs/heals. However, they all have very different roles, and there is no "best" support. > The best support will be the one that fulfills the necessary roles for a certain team.
For example, Alistar has a lot of health and provides amazing CC with knock ups and his headbutt, as well as his heal. He is also useful for staying in front of the team to keep opponents from reaching his squishier allies with his ultimate.
On the other hand, Janna is a lot more squishy but also provides good CC with a knock up, a slow, and a buff that can be used on ally towers and champions, providing 50 AD at level 5. Her ultimate knocks enemies away and heals allies.
Soraka has a MR passive, and is able to silence enemies while providing lots of Mana and Health to the team.
In addition, there are some more 'offensive' supports such as blitzcrank, who can help the team by pulling in an enemy with rocket grab.
While playing a support, one should not build the same items every time. They should focus on defensive items, as well as support items to suit your teammates. Supports also need to buy lots of wards and have good map awareness.
To summarize, the ideal support should be chosen to fit the team. Experiment with different combinations of AD carries with supports and find what works best for you.
Some good combinations I have found while playing support:
Caitlyn-Taric
Vayne-Janna
Urgot-Blitzcrank
In my opinion, Janna is so useful on all the AD carries. Her shield is like a free BF sword @ level 9, in addition to it being a shield. When supporting a decent player on bot lane, we rarely lose.