Yet to beat Black&White and Black2&White 2 and X&Y, but FireRed, Emerald, Platinum and Heartgold are all great and I simply just can't decide.
But I prefer Johto and 3 years later Kanto, so FireRed in terms of location, story, pacing and so on isn't anything special.
Therefore it's still Emerald vs Platinum vs Heartgold and all of them are very unique.
3rd gen is very outdated when it comes to gameplay, but the music, Pokemon, story, characters and environments in Emeralds are just good.
While Platinum has better gameplay, but just "ok" music, yet still good Pokemon, story, characters and environments.
So I guess the winner is Heartgold because it has everything and then some. Note, that I'm yet to beat B&W, B2&W2 and X&Y