I find it easiest to have a neutral type when facing a gym leader or elite four member. The game designers usually like to spoil a straight-on advantage strategy (like bringing a Seviper to a Fairy fight).
Even though it doesn't hit hard, my Blastoise was able to fill in the gap and take out most of the pesky opponents. I actually use Water attacks to take out most Steel-type enemies... not by design, but it always ends up that way. I find Furfrou is an amazing lead Pokemon to use, as it can learn a good array of moves in addition to U-Turn after you know what you are facing. My Furfrou took down most of the gyms and elite 4 with her Surf and was fast enough to do serious damage to any Fighting types before having to switch out.
That being said, I think the hardest opponent I faced was the Elite 4 guy with the water pokemon. Chesnaught was taken out very easily by him, and I can't recall why... most likely a flying or psychic move :/