In one playthrough, I actually used a Pachirisu. It was pretty good, and once it got to the 50s it was definitely able to hold its own, but it felt like a bit of a waste of time since it had no evolved form. Normally when I train a Pikachu I always EVENTUALLY evolve it. This was pretty much the same, except I didn't have the option to evolve, so after the league it was like "..okay, buh-bye".
In my most recent playthrough of Platinum, I trained an Electabuzz/Electivire (had to trade with myself over Wifi with one DS to do so). I LOVE Electivire, it learns great moves (by level up and/or TM) and generally does great in battle.
In HeartGold (well, in Johto games) I generally use Ampharos, though most recently I used a Raichu/Pikachu that I traded in so I could play through the Johto Gyms with it. I also traded in a Thunderstone, though I didn't use it until around Claire, I believe. Raichu did pretty well. With Iron Tail and Thunderbolt he generally packs a decent punch.