Snow flakes are all different, because crystal growth is very dynamic. While one crystal face grows another one can be susceptible to dissolution. While the snow flake is blown around through the air, temperature and humidity are always changing. This has the additional effect that sometimes crystal nucleation and sometimes crystal growth (which are energetically favourable at different temperatures) are active. While the snow flake descends the same dynamic continues. The crystal competes with liquid water and humidty for H2O-molecules. Even the crystal faces compete with each other leading to for example dissolution of molecules on the inside and crystallization on the outside. Because no snowflake experiences the same conditions in the same history, every one looks a little different (not surprising because actually there are also not two Zircon crystals that look alike, or two flowers that look alike, etc...).
Image used from Weatherwise magazine, AMS
The axes of this plot are supersaturation with respect to ice ($e/e_{si} > 1$) and temperature. All of of these crystals are hexagonal but some are long skinny hexagonal prisms and some are very thin and wide hexagonal plates. The snowflake is a dendrite and these crystals grow between -10 and -22 C in and supersaturation with respect to liquid water.
What happens is that the hexagonal crystal has 6 vertices connecting its 6 edges. These vertices produce an increased gradient in vapor (indeed, the sharper the angle, the stronger the vapor gradient becomes). At high supersaturations vapor is quickly deposited in the areas of the enhanced vapor gradient and the arms of the dentrite form. The particular shape of the dendrite will depend strongly on the vapor gradient it is experiencing, which in turn is influenced strongly by its current shape and the environment it is growing in.
References:
www.physicsofmatter.com
The image above shows an oxygen atom bonding with two hydrogen atoms (water). We can call these covalent bonds for our purposes, although hydrogen bonds tend, in some cases (and especially water) have special properties that make it unique from other covalent bonds. The result of this bond is a slightly negative charge near the oxygen atom and slightly positive near the hydrogens.
What happens next is that two water molecules will build up in a specific way, relating to their charge:
www.doublexscience.org
You see, as Spießbürger mentioned, the dipole of the water molecule allows the water molecules to build up in the shape pictured above, over and over and over. This happens naturally, since when water freezes, it forces the molecules to get closer together (but interestingly enough, the end result makes ice less dense than its liquid form). As these molecules build up, you start seeing a crystal lattice:
www.doublexscience.org
With each ring in the crystal lattice having six side. Each point is an oxygen atom. Each side is side is a hydrogen bonding with an oxygen. The snow flake, is just this bonding happening many many times.
So while it might not seem so obvious, we can explain the nature of the hexagonal structure with highschool/middle school level chemistry.
I see snowflakes as following the framework of a flattened cuboctahedron.