Be incredibly suspicious whenever someone says "either/or."
A lot of the times in the rescue community you meet people who say, "It's the fault of the public! They breed and abuse animals, we have to kill them because the community is irresponsible and there's too many!" Then you meet people who say,"Those evil kill shelters! It's not the public's fault! The shelters don't have to do that much killing! They just don't want to put in the hard work to save lives!"
As always, I think the the truth is somewhere in the middle, and villification does little to solve anything (unless you have documented proof that people are acting like villains, and then prosecute and campaign against them vigorously). I think that our animal control facilities reflect the values of our communities and vice versa. I think that change will come when municipal shelters become more innovative and implement more life-saving practices like foster programs, transports, aggressive spay/neuter campaigns, and healthy partnerships with other rescues (which will include engaging the community), and when our communities engage with and practice humane education principles, like adopting instead of buying, fostering, volunteering, spaying/neutering, implementing stricter laws about breeding, and investing in training and veterinary care (which will include engaging local municipal shelters). No one's off the hook here. We're all to blame for this damn mess.
Jesus instructs people who are about to judge another's failings to take the log out of their eye before they try to remove the speck from their neighbor's. Whatever your religious beliefs, it would behoove those of us in animal rescue to remember that principle.