Technically, the cities that end in -a are exclusively feminine, so you CANNOT say "Barcelona es hermoso". You must always say "Barcelona es hermosa". As for the cities that end in other letters, they're considered masculine, so you can say "Madrid es hermoso", "Moscú es hermoso", but sometimes "la ciudad" is omitted, so you can say "Moscú es hermoso" but also "Moscú es (una ciudad) hermosa".