In Diamond you can find them being held by poliwhirls after you have the national dex. In Heart gold you can find them in the slowpoke well.
In Heartgold, once you have surf, go to Slowpoke Well. In the cave with the Slowpoke, theres a ladder which can only be reached by Surf. In the cave is a TM (Rain Dance I think) and a Scientist. he gives you a Kings Rock.