I think Gyarados is the best.
I think this because Gyarados can use water type AND dragon type moves, and those combined help you a lot better than having a Pokemon with only 1 type of move. I remember once in HG I was defeating Karen of the Elite Four. Her Doomhound or whatever it is called didn't get hurt at ALL from fire moves, and my best Pokemon was Meteorite the Typhlosion! I came back later with a Gyarados and I ended up beating the Elite Four.