A snowflake, to put it in simple terms, is an extension of a star schema.
Where in a star schema each dimension is typically stored in one table (which could therefore contain hundreds of attributes), the snowflake principle extrapolates this dimension and creates tables for each level of that dimensional hierarchy.
In other words, a Region dimension may contain the levels Street, City, State and Country. In a star schema, all these attributes would be stored in one table (typically given the name 'region_dim'), whereas the snowflake approach would create 'street_dim', 'city_dim', 'state_dim' and country_dim', each containing their respective attributes and unique identifiers (used to join the tables together).
It is often thought that a snowflake schema makes for a better data storage model, but it typically results in longer response times for any application wishing to extract the data.
I hope that helps...