I would just like to make a small (but important) point, because it looks as though there may be some confusion here regarding nomenclature.
Dextrorotatory means the compound rotates plane polarised light clockwise and is denoted by the prefix (+) or (less commonly) d.
Levorotatory means the compound rotates plane polarised light anticlockwise and is denoted by the prefix (-) or l.
This is
not the same as the D and L nomenclature that is commonly used for sugars and amino acids, and has nothing to do with R/S. D/L and R/S do not meaningfully correlate to (+)/(-).
There is one and only one molecule where D/L correlates meaningfully to (+)/(-). Due to the historical origin of Fischer's D/L nomenclature, D-glyceraldehyde is (+), and L-glyceraldehyde is (-), by definition. The structure of D-glyceraldehyde was defined as the enantiomer of glyceraldehyde that is (+), and L-glyceraldehyde the enantiomer that is (-). However, all other compounds are assigned D or L based on a structural relationship to D- and L-glyceraldehyde (regardless of their optical rotation).
To comment on the original question and the answers given so far: In general Schrödinger is correct - (+)/(-) must be determined experimentally. However, due to the way in which D/L nomenclature was organised historically, for glyceraldehyde (and glyceraldehyde is the only compound for which this applies) you can assign (+) or (-) based on a D/L assignment (and you can assign D/L based on the links AWK provided).
camptzak, for the physical explanation for optical rotation you should try a physical chemistry textbook (such as Atkins' Physical Chemistry), but you could start here:
http://en.wikipedia.org/wiki/Optical_rotation#TheoryI have yet to find a good/comprehensive web source for the explanation (and I am not really qualified to provide it).