HeartGold and SoulSilver are remakes of Gold and Silver for the DS. They were necessary in order to "catch them all" - Red/Blue/Yellow and Gold/Silver/Crystal were for the original Gameboy, and there was no way to transfer Pokémon from there to the newer GBA and DS ones. Since Ruby/Sapphire/Emerald, though, it's possible to just keep transferring your Pokémon forward, indefinitely.