To expand on what andrei3333 stated, the difference basically comes down to how high you intend to overclock your FSB.
If you don't intend to OC the FSB above 400MHz then getting DDR2-1066 is kinda pointless as you won't be ram speed limited by the DDR2-800 for any FSB speeds below 400MHz.
If you intend to OC the FSB to speed higher than 400MHz then there is a gray area between FSB of 400 and around 450 or 475 that depends on how well your particular DDR2-800 can overclock. If your DDR2-800 can operate at DDR2-900 or 950 with some slight voltage bumps (1.8 -> 2.0 or so) then you are still better off ($-wise) to get the DDR2-800.
However if you are talking about dirt-cheap DDR2-800 then don't count on OC'ing the ram beyond 800MHz, so if your FSB is going to be over 400HMz then you are better off getting the more expensive DDR2-1066. Likewise if you intend to take your FSB upwards of 500MHz as that will require your ram to operate at DDR2-1000 speeds (minimum) and that really requires some good ram (as in DDR2-1066 ram).
So summarize:
If FSB <400MHz then DDR2-800 is fine
If 400MHz < FSB < 450MHz and DDR2-800 = quality ram then DDR2-800 OC'ed to DDR2-900 is fine
Else, DDR2-1066 is better to ensure it won't limit your FSB clocks when going for >450MHz or >400MHz with cheap non-overclockable DDR2-800