While Cuernavaca, Mexico has a good reputation for Spanish language schools, my aunt attended one in San Miguel de Allende in the state of Guanajuato and loved it so much that I decided to go there.
The first time I visited this lovely town, I flew to Mexico City, and since San Miguel was still four hours away by bus (now there are airports that are much closer), I opted to break up the trip with a weekend in the capital. On Saturday the weather was great and the city relatively free of smog so I decided to find a bus to the nearby Aztec pyramids at Teotihuacan. On Sunday, I visited the wonderful National Museum of Anthropology for a few hours before taking the bus up to San Miguel.
I'd begun relearning Spanish at work a few years before and thought my level to be moderately high, so when after taking the a short written test and going through a short interview to determine my level I was surprised to find I was only at level two.
The instructors at the Academia Hispano Americano, however, were right on. My level two classes were challenging and engaging with just the right mix of grammar, conversation, and culture. The school also found me lodging with a nice family located several short blocks from the school.
While San Miguel de Allende has been popular with Americans for decades, and there are many who have retired there, the town has so much charm that this influx of anglophonia should not deter you from considering this as a place to study Spanish.
After spending three months there I found that this cosmopolitan town has something for everybody. It is an artist community, a place to hear all kinds of music, there is a very active nightlife, and after you've gotten to know San Miguel, there are dozens of other interesting places to visit nearby.