Pokémon spawns in Pokémon Go are random, so it could just be bad luck if you don't have any near you, and you might want to try again later. However, the spawn locations are also weighted based on population density. Much like in Niantic's other game Ingress, Pokémon Go uses Google Traffic to get the traffic density in each area by tracking the GPS locations of Android phones. The more people that frequent an area, the more Pokémon there will be there.
Ironically, the best way to find wild Pokémon is to go to the city, not the wild.
I believe that PokéStops are also weighted a bit more heavily, because I saw many Pokémon spawn directly on top of my church in the country, but I suppose that could just be because a few hundred people spend a few hours there every week. Regardless, this could be a useful plan if just because many people go to those locations.
If you are really in the middle of nowhere though and unable to find fellow humans, the best plan would be to wait. Even if there are no Pokémon near you when you start the app, just having the app open will cause at least some Pokémon to spawn near you. I don't think I've waited long without having any Pokémon near me, so I would just go look for the one or two that are nearby, because more should spawn while you catch those.
And then if you don't want to move or wait, you can always just pay money. Using Incense will make more Pokémon spawn near you for 30 minutes, so that's a pretty good solution for the rich farmer. If you are at a PokéStop and you want more Pokémon, you can also use a Lure on one and it will cause more Pokémon to spawn by that PokéStop. If you're lucky, someone else may have already used one on a local PokéStop and you can benefit for free.