HeartGold and SoulSilver
In a house in Blackthorn City, there is a man who will exchange Heart Scales for the use of his move relearning services. He is conveniently located in the same house as Johto's Move Deleter and a Move Tutor. Heart Scales can be obtained from destroying rocks with Rock Smash, and through using a Pokéwalker. They can also be obtained as a Pokéathlon prize for 1000 points on Wednesdays and Sundays or from a Pokémon that has Pickup and is at level 51 or higher.