My experience:
South:
Awesome food, lower cost of living, nicer people on average
Coasts:
Bland food, highest cost of living, two faced people who only care about money, terrible traffic
Midwest:
South + boring
The biggest draw for me is that the cost of living is much less. You can live much better in the Midwest/South than you can anywhere else. I don't see how this isn't an immediate draw for people. Its far more comfortable than places like California with their absurd cost of living.
I've lived in the "North" most of my life, Texas for the last 6 years, and now I'm moving back North. I spent my last summer in San Francisco which was certainly an experience - the city was my least favorite place I've ever been too. I'll be moving to Seattle soon.
Beyond objective things like expenses and weather, there isn't a better place than any other. Every state has shitty places and people. If you've only visited an area, you really can't say shit. If you've lived somewhere for at least a few months, then you can bitch all you want.
Also, the "North" contains places like Montana, North Dakota, South Dakota, and Minnesota - all are extremely cheap places to live. I assume by the "North" most people mean the Coasts... People should be more clear.