Smeargle
Smeargle is an interesting Pokémon. It can only learn the move Sketch, but if you use Sketch on a Pokémon in battle, it will copy the move permanently. This is useful because you can train a Smeargle with a huge number of movesets. Smeargle can learn Sketch every 10 levels starting at level 11, but Sketch can only be learned one at a time. Be careful using Sketch, because if you use it at the wrong time, you'll waste one of your only Sketches. Sketch will also not work in a Link or WiFi battle.
The way to get a good move on it is to go to the restaurant that hold Double Battlers near Sunnyshore City. Put Smeargle and a Pokémon with a move that you want on the Smeargle out first. Save before you battle because you may mess up. Talk to a couple and start the battle. Use Sketch on your other Pokémon and use the move you want on the Smeargle on one of the opponents Pokémon. As long as Smeargle doesn't faint before it can use Sketch, it will work, if not, reset and try again. After you get the move you want on Smeargle, raise it to level 11 (or later depending) and do the same for another move.