This is still an area of active research [1,2]. The basic hexagonal symmetry comes from the hexagonal lattice of bulk ice. What is more intriguing is the global symmetry between individual dendrites. From reading some recent papers, I think the mechanism is as follows. The snowflake is small enough that although the temperature and water pressure surrounding it can change quickly, all its dendrites are always exposed to almost identical conditions at a given time, leading to a largely deterministic growth, hence the symmetry.
First, the symmetry is not perfect with most snow flakes, if you look closely. Second, I guess there are asymmetric flakes, but they are probably rare. I’m sure though that no current model can explain the distribution of the degree of symmetry, perhaps not even an order-of-magnitude guess.
"This process is much like tiling a floor in accordance with a specific pattern: once the pattern is chosen and the first tiles are placed, then all the other tiles must go in predetermined spaces in order to maintain the pattern of symmetry. Water molecules simply arrange themselves to fit the spaces and maintain symmetry; in this way, the different arms of the snowflake are formed."
Nature actually loves hexagons. They are efficient and all over the place. If you blow a bunch of separate bubbles, even they will form into hexagons where they are surrounded by other bubbles.
Watch the NASA video linked towards the end. Explains the H2O bonds and how the crystals always form to 6 sides. Temperature, Pressure, etc... trigger different patterns.
Consider a single free water molecule. As it moves around randomly it will hit the growing snowflake on a random side and get stuck to it, jiggling around a bit until it is in a position that is hard to get unstuck from. This creates the basic hexagonal shape of the snowflake.
Because of the huge number of water molecules floating around, it should be statistically likely that all sides of the snowflake will be hit and grow evenly. But the tips of the hexagon will be slightly more likely to be hit since they are protuding a little bit. Thus the tips will grow outwards and will be even more likely to get water molecules stuck to them. Eventually the tips will get large enough that molecules will stick to their sides, creating new growing branches. And those branches will eventually grow other branches and so on in a fractal manner.
The saturation of water molecules and the temperature are the conditions for how often the snowflake is hitnby water molecules and how much they jiggle around before getting stuck. As the snowflake falls through the air, these conditions change, which creates all the varied forms of snowflakes.
Most snowflakes aren't, the vast majority of snowflakes are of the "irregular" type. And to answer another person's question above "Why are snowflakes 2d", the irregular ones aren't, and there's a lot of symmetric ones that aren't 2D either[1].
The ones people like to photograph are the symmetric 2D ones, so there's just a lot of selection bias going on. But, the ones that are symmetric, are that way because all of the branches experienced the same environment on the way down. Most of them are not perfectly symmetric, and differ quite a bit, but photographers tend to select only the most symmetric ones.
The website in [1] has an overview of how to get started in snowflake photography if you want to give it a try. I've done it quite a bit myself, but unfortunately I don't get the opportunity very often.
"Ice crystals are like a six-sided prism. This prism grows as more ice molecules stick to its faces. It turns out that under conditions found in common snowstorms, some facets in XY plane tend to grow much faster than the facets along the main axis of the crystal. As a result, snowflakes usually end up looking like flat pancakes with many finger-like branches"
The edges grow much faster because "molecularly flat regions... have fewer dangling chemical bonds and are thus less favorable attachment sites [for condensing molecules]." Also, snowflakes can take on 3D column shapes depending on humidity and temperature. See http://www.its.caltech.edu/~atomic/publist/AmSci2007.pdf