After you beat Archer (The neo team Rocket Leader) the directer gives it to you
To the right of the town, there is a small hill will an old man standing on it. Talk to him and he will give to the Rainbow wing for Soulsilver, or the Silver wing for Heartgold.
the rainbow wing is your key into the bell tower. you just walk in and as you talk to the monk blocking your way, it will hover above your head and he will let you through. go through the tower until you get to the roof. the kimono girls will summon ho-oh with the help of your clear bell (if your playing soulsilver and beat the elite 4, you don't need a clear bell) in heartgold ho-oh is level 45, in soulsilver he's level 70, but you can only catch him once you've reached kanto and gotten the rainbow wing. (same for catching lugia in heartgold)
You get the Rainbow Wing from a man in Pewter City next to the poke mart
you need to have ho-oh
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