There seems to be a lot of misleading information in the other answers here. I play Zyra as support at Diamond 1. The thing with Zyra is that she is more of a high risk/high reward support. She can beat anyone, but strong engages is the best chance you have at beating her. The best counters to Zyra are champions that can force hard engages on her and holder her stunned/cced for a long amount of time. Short list of these would be (Leona, Thresh, Blitzcrank)
As a hard engage champion, you have 2 ways to force a fight.
1) Bait out her E so that she cannot root you as you try to run up to her.
2) Dodge her E or get close enough that even if you get hit by it you still can lock her down.
You need to then focus her down because she will often be much more squishy than the adc. Also a little known fact is that at level 3 onward, she does far more damage than the adc in these fights also. For this reason you need to try to kill her before she can unload on your adc. As a tanky support you can often live through her damage and her adcs combined (use all defensive quints/marks in addition to your normal defensive glyphs/seals and 0/9/21 or 0/21/9 masteries).
Even if you counter Zyra with these hard engages, if she gets too far ahead she will easily kill you and your adc over and over again. You need to get ahead before level 6 because it increases her burst substantially.
Alternatively, Vel'Koz actually can do great vs her. He has a much longer poke and also can stun. (Lux doesn't work as well because if they try to hard engage on you, the snare doesn't do much to stop them from getting their combo off) Never engage this fight and focus on poking safely until you force her back or she does a sloppy engage if she gets desperate.
Why don't a lot of the other answers work?
Janna: Other's stated that you can simply shield your adc every time Zyra tries to damage them. Unfortionately, Zyra's abilities do FAR more damage than Janna can shield for. Zyra's poke can be used to easily zone your ADC out of lane if you are a support Janna since you have no way to counter her damage and engage on her.
Taric: Sure he has a targeted stun, but it moves extremely slowly. This gives her plenty of time to react to the stun with a root + seed before it hits her and so the only thing taric gets off is a stun. He can't follow up to finish Zyra off and if Zyra ignored taric and managed to get a burst off on the adc, the adc will quickly die from the damage zyra just output with her abilities/plants combined with her own adcs damage.
Soraka: Her heal has such a high CD she can't heal the damage Zyra does before she can get another round of her abilities off. Also, she can safely get her abilities off before she can get silenced by soraka. Soraka will never be able to be in range for her Q to do damage until the fight is over.
Sona: She just gets destroyed by Zyra. Shorter ranged poke, not enough sustain to sustain past Zyra's damage.