As Diamond/Pearl and Platinum vary much in many ways, especially in the Pokémon available during the main singleplayer campaign, note that the advice for both games can vary, and some of it will only apply to one game rather than the two of them.
There are no easily accessible Pokémon that can learn Fly, Defog, and an additional HM in Diamond and Pearl. The only one found in the wild is Pelipper, being able to learn Surf, but you'll need to use the HM in the first place to encounter one. If you're willing to put in the additional effort to get one later, it and Bibarel can learn all HMs but one. Rather, if you already have a Pokémon you're willing to teach Fly, Finneon/Stunky and Bibarel are a good combination. Finneon can learn Surf, Defog, Waterfall and Flash if necessary. Stunky can learn Cut, Defog, Rock Smash, and Dig if you'd like. Bibarel can learn the rest of the HMs Finneon and Stunky can't.
Pachirisu with Pickup can be caught as early as Route 205 in Diamond, Pearl, and Platinum, which have a chance of giving some valuable items that cannot be obtained at that point of the game after winning a battle, such as Ultra Balls or Full Heals.
In Eterna City, the Herb Shop offers cheaper, yet effective healing items in comparison to your standard Potions or Revives. As Friendship doesn't play a huge role in these games beyond Return, a handful of evolutions and a couple of visual things, it's likely best to stock up on these and save up on money for other things.
Prior to OR/AS, the catch rate for Dialga and Palkia are 30, making them one of the easier legendaries to catch. It's probably best to save your Master Ball for something else, assuming you wish to catch all the legendaries.