'Du' or 'Sie' is a difficult decision which can bother Germans as well. There are no written rules and the usage changes from decade to decade and from one part of Germany to the next. When I was young we used 'Sie' even to fellow students which is now never ever heard. Here are some general 'rules' nevertheless:
(1) (adapted from James) When in doubt use the formal address or ask.
(2) Up to the age of about 25 use 'Du' unless you are much older (that is 30-35).
(3) The more formal the exchange the more likely use 'Sie'. Example: You are 28 and meet a young person of about 25 at a disco. 'Sie' would be very wrong. Imagine you had met the same person the morning as a bank teller a 'Du' would have been wrong.
(4) The more liberal (left) the context the more likely you say 'Du'. Example: You are not at a bank but in a shop with health food. Now you'd say 'Du' to a cashier there if s/he looks not much above 30 (unless of course you are much older).
(5) You are much more likely to say 'Du' to persons if they are addressed 'Du' by someone you already say 'Du' to. Example: You are at a party of a friend; then you can safely say 'Du' to any person s/he says 'Du' to unless the age differenc is too big.
(6) The golden rule of 'common fate': The more you have in common the earlier you say 'Du'. At my age (above 50) nobody says 'Du' to me on the street. However, meeting someone during vacations (let's say at the west coast of Ireland) will lead to a quick 'Du'. Meeting other parents of young children (in a children group, e.g.) is a 'Du' situation (common fate!). Being in the same room in hospital induces a 'Du' too. And so on...