In realtà non c'è una regola ma un insieme di consuetudini; è vero che per le città si usa "a", sebbene non tutte le città abbiano nome maschile ;) Spesso sono valide entrambe le alternative con leggere sfumature di significati, per esempio "vado in biblioteca" (una qualsiasi) o "vado alla biblioteca" (quella della mia città).