Does a location ever differentiate which Pokemon it spawns? Or am I destined to live across the street from Zubats forever? Zubats are a special kind of hell for me, I always waste so many Pokeballs trying to capture them.
According to the official guide on catching Pokémon:
Some wild Pokémon appear only in certain environments and climates. For example, some Pokémon may appear only near lakes, oceans, or other bodies of water.
That may mean that a lot of Pokémon don't appear in your particular area, or more likely, Zubats just have an unusually high encounter rate there. Walking around to different areas will probably diversify the types of Pokémon you are seeing. Others and I have also observed that as you level up, you are more likely to see rarer/evolved Pokémon, so keep at it and you should see some new stuff when you are higher level.
You don't have to catch every Pokémon you come across, but if you have a bunch of extras, you can transfer them to get more Zubat candy (from the Pokémon menu, selected the Pokémon you wish to get rid of, then scroll down to "Transfer"). These can be used to evolve your best Zubat into a Golbat or to power up your Zubats or Golbats, assuming you also have the stardust.
I encounter quite a few Ratatas and I already have a maximum power Raticate so sometimes, I just let them go. If the problem is that you are running low on Pokéballs, you can get more at Pokéstops or buy them from the store.