I've always thought that there must be a biological or evolutionary reason for such variation in hair textures across the human race. Even within groups of people with similar ethnic backgrounds, you can still find differences in hair thickness, colour, and curliness. Why?
HERE'S MY THEORY
Just like putting your hair up in a bun, having curly hair is an awesome way to keep your hair off your neck. This is especially advantageous if you're living in a hot climate where long hair would only serve to make you really sweaty. I think that's why our hair naturally seems to grow up and out, rather than in a downward direction; it's a method of temperature regulation. If you've got a really big afro, you already know first-hand that it's a pretty effective shield from the sun, too... just like a wide-brimmed hat! And the best colour for this hat to be is black, because dark colours absorb UV rays more readily than light colours.
THE RAW SCIENCE
Regardless of the reason, it all seems to boil down to the shape of the hair follicle. If the follicle is asymmetrically shaped, the hair that grows out of it will have an oval/flat cross-section and will therefore curl as it grows. The opposite holds true for straight hair. This is because the follicle determines how the protein keratin is distributed along the hair shaft. The less even the distribution of keratin, the kinkier the hair. (Source: Popular Science)