you get it from the dude in pewter city after you beat the elite 4.
in goldenrod city
go to pewter city, then there is a man you get the silver wing
there is no such thing, but there is a clear bell
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.
After you get the silver wing from the old man in pewter city
you show him the rainbow wing
Rainbow Wing and Clear Bell
you need a silver wing
You first have to beat team rocket, then the Kimono girls
Once you get to pewter city a man somewhere in the city outside will give you the rainbow wing (how easy).
Get the rainbow wing from the radio tower's director and then go to pro.Elm.
At Pewter City in one of the houses an old man will give it to you