all over the place. go to Serebii.net to get exact locations on any Pokemon. that's what i do.
you cheat or you waste all your time and catch them all.
basically its every Pokemon from the kanto region to the johto to hoen region
In the tall grass? Duh. Walk around instead of stoning in Littleroot.
To get all Pokemon you have to trade with other gamepacks. Leafgreen, Firered, Emerald and Sapphire. I managed to do it, because one of my friends had cheated celebi and jirachi.