I'll give good pokemon I like for the best types. A tall order here! Wow, I'll try my best.
Porygon2/Z- great stats and unique moves for a VERY unique pokemon!
Ursaring- nice attack, and guts help too.
Togekiss- very good stats, great ability and good moves.
Hitmonlee/chan/top- great moves. great stats.
Machamp- no explanation. It's machamp! Come on.
Crobat- Poke-stealth bomber, good stats and very fast.
Gliscor- a tank! with good moves and decent speed.
Pidgeot- an original, and fast with decent stats.
Yanmega- again, very fast, and awesome stats.
Slowking- a special tank. Not very ommon.
Quagsire- great typing, and not too bad all together.
Kingdra- also great typing, and high stats.
Vaporeon- high stats, good abilty, an lots of hp.
Pinsir/Heracross- super attack, and good type covering moves.
Forretress- entry hazards! mega defense and good typing.
Scyther/Scizor- both strong, with great moves.
Exeggutor- very high stats, and can learn ancientpower, covering 4 weaknesses!
Tangrowth- good defense and sp. attack, good moves.
Marowak- awesome with a thick club.
Mamoswine- mammoth attack, and, just pretty cool.
Jolteon- an electric form of Gengar.
Magnezone- good special tank. decent typing too.
Tyranitar- no explanation.
Umbroen- awesome wall! tricky moves too.
Gengar- very fast and very hard-hitting specially.
Weavile- very fast and very hard hitting physically.
Dusclops- excellent defenses and tricky moves.
Metagross- Dont need to say a thing. THIS IS THE ONLY STEEL TYPE YOU NEED!
Salamence- super strong, good typing.
Altaria- great defenses, and helpful moves.
Dragonite- super strong, good typing.
These are my favourite pokemon for the best (in my opinion) types. -----Notice: I tried to put pokemon you can get from the beginning, and that were mostly from Kanto and Johto. I hate to cut out good pokemon, but.... for heartgold, these are good pokeomn you can get in the relatively early stages of the game. SOME pokemon are Sinnoh and Hoenn- I couldnt resist!