AT&T used to be notoriously bad in San Francisco, however they have improved coverage recently. Down in Silicon Valley, both Verizon and AT&T should provide the best coverage.
As far as I can tell, my buddies using Verizon seem to complain the least.
I've used AT&T and T-Mobile (both prepaid and MVNOs), and T-Mobile's breadth of coverage is definitely inferior, even in heavily populated urban zones, often dropping to "4G" (HSPA+) or even EDGE (2G) in certain neighborhoods. This is probably not identifiable on a coverage map.
T-Mobile is even worse when you get to sparsely populated areas (like the Santa Cruz Mountains or wine country).
The biggest complainers of all around here are Sprint customers.
I'm currently using a prepaid T-Mobile SIM in my iPhone, works well enough for my purposes.