To add to both Spießbürger's and casey's excellent answers, hydrogen bonds are the reason why some snowflakes are six-sided. His was alluded to, but I think it could use a bit more extrapolation.
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.