The Pokemon league is proably the best place to train your Pokemon.If they are a low level give them an EXP share.
OR you can train at Mt.silver and also if high enough battle red for a ton of xp
Mt. Silver or the Pokemon league
The Pokemon League
The best place to train Pokemon level 40 and above is at Mt. Silver. Since you cannot gain experience through multiplayer battling, the highest leveled place is Mt. Silver. Pokemon average level 40-49 in Mt. Silver, so it is a good place to train.
Mount Silver is the best place to train feraligatr Lv 42 and ampharos lv 37.
The best place to evolve a Pokemon in Pokemon Heart Gold is at Mt. Silver.
The best place would be in the Fighting Dojo against the Gym Leaders. They give more experience points and have higher leveled Pokemon. They are also smarter than wild Pokemon.
find a place that has wild Pokemon the same level as it.
elite 4
ANYWHERE
An area with grass Pokemon would be best.
sky piller
probly at the pokemon leuge