In addition to Thebluefish's answer I will add some details.
OVERALL, IT'S RANDOM
The randomness of pokemon spawning around your area, are essential to give everyone a unique gaming experience. But there are some factors we could rely to expect a greater chance to catch a pokemon within an area.
1. Rarity Let's give the fact that there are the most common pokemons like Rattata, Zubats, etc...
The rarity of these spawns, MIGHT BE proportion to the egg kilometer category they belong. Thus you can expect the quanity of spawns upon this, but of course it does not gauratee to be of same type.
2. Nests already mentioned by Thebluefish, nests will ensure that a particular pokemon will spawn overtime in that particular range of area, proven by experience, also introduced by pokemon go community, and here are some topics about pokemon nest for you to get started Pokemon Go Nest Find Silph Road Nest Articles
Notes:
1. Once Niantic have allowed live locating of pokemons, that enable developers to build apps like the famous Pokevision, which allows you to see live, where does natural spawn pokemons do spawn and when they will despawn. Be also aware that there are 2 types of pokemon spawn, natural and lure.
2. I don't have any reference but there are assuptions that certain type of pokemons will spawn based on area content, for example neardby water areas have greater possibility to spawn water type pokemons. Based on my experience, I don't find it to be always true, but I did once caught 3 Lapras within one day on a nearby water area.