I'd look at the motherboard, maybe 80% of Pentium 4/D/Core2Duo motherboards only support 667 officially. I assume as you are looking at 1066 FSB however that you are likely talking about Core 2 Duo and therefor a high end motherboard, probably a 965P, that probably will support 800.
Are you planning on overclocking? Thats the main reason I suggested DDR2 800 to be honest, on most motherboards if you set the memory to DDR2-667, then with a 1066mhz FSB (266 clock) there is a 4:5 frequency divider to then connect it to the 333mhz clock of the DDR2-667 RAM.
If you then overclock by raising the FSB to say, 300, you raise the memory clock to 375mhz, making for DDR2-750. At this point you'd better be running DDR2-800 modules, or you'll have to set the system to a lowe divider for slower RAM speeds, or loosen the memory timings, or suffer lots of crashes
I've actually just bought some DDR-2 667 myself, I bought 2gigs of CAS3 ram, on the basis that it should run up to about 880 at CAS4 (33% relaxation in timings meaning a 33% increase in clock, hopefully) and was cheaper than DDR2-800 CAS4.
I'm kinda going on and on and round in circles here, but Core 2 Duo seems to do pretty damn well regardless of memory speeds, so if that is your CPU choice than 667 should be fine. If you overclock you can always change the divider (if in the above 300mhz fsb example you changed the bios to DDR2-533 you'd then be running at DDR2-600 speeds, with plenty of headroom) of loosen the timings (DDR2-667 CAS3 *should* be ok at DDR2-800 speeds if run at CAS4) to cope.