you need to get the radio tower {Gontrod city} back from Team Rocket. When you reach the top an old dude comes and gives you a rainbow wing. Hope that helped =]
you have to beat team rocket then the director gives you the rainbow wing
in goldenrod city
After you save the radio tower in goldenrod city a man comes in and gives you the rainbow wing as a reward.
in golden rod city
After you beat the last team rocket executive on the observation deck, in the radio tower in goldenrod city, you get the rainbow wing from the Rainbow wing from the director.
Once you get to pewter city a man somewhere in the city outside will give you the rainbow wing (how easy).
If you're using heartgold, after beating the Pokemon league go to pewter city and an old man on a hill will give you the rainbow wing in soulsilver and the silver wing in heartgold.
you show him the rainbow wing
You first have to beat team rocket, then the Kimono girls
Rainbow Wing and Clear Bell
Get the rainbow wing from the radio tower's director and then go to pro.Elm.
it lets you try to catch ho-oh at the top of the tower in ecruteak