I've used a few pokemon that are either considered weak or aren't as popular as they should be.
Primeape- I never see anyone talk about this thing. It's really good. My ex-boyfriend made fun of me for the longest time for even taking the time to train this pokemon. It just takes it a while to get good. I defeated half of his team with my primeape. Whenever I play HeartGold I always make sure to catch me a primeape.
Golduck- Another unpopular pokemon. Or maybe it is? Well I hardly hear about it. I love golduck and it is always a staple on my team. It can learn psychic moves and is a good water type if you train it right. It can take down Maylene and Chuck without any fail.
Raticate- I trained one as a joke. Someone dared me to. Surprisingly raticate is a good pokemon if you give it the chance to be. I know that they're everywhere and get annoying, but people shouldn't knock a pokemon before they try it. Just like Zubat and tentacool. They evolve into good pokemon. If you're tired of always seeing them, put up some repels. But these pokemon don't really deserve all the hate.(Although I want to rip out zubat's vocal chords, ahhh).
Jumpluff- Lol.. this one was weird. I thought it was cute, but it was sooo weak at first, but I just trained it some and actually managed to take out a good bit of trainers. But it's still pretty weak in all honesty.