Colours 0-7 are "normal" colours. Colours 8-15 are "bright" colours. Unfortunately, back in the old days when bold wasn't supported on terminals, they decided that bold should be implemented with "bright" colours. So now, any time you use bold, there are applications that force the colour to be the bright version (i.e., even if you tell it to use colour 6, it will actually use colour 14 if you specify bold as well).
For light themes, this is a significant problem because most colour palattes actually put the bright (i.e. lighter) colours in the "bright" colour section. This means that basically every time you use bold, there will be very little contrast -- making light themes practically useless. You can't just change the palette either, because then your non-bold characters will have poor contrast.
What agnostic does is to use colours 8-15 as "normal" colours and 0-7 as "bright" colours. This way, when you use bold it actually uses the colour you intended. Then you can adjust the palatte in your terminal app to use whatever colours you want. Agnostic is also designed so that it doesn't completely suck with standard palattes (like the Xwindows/iTerm default, Tango, Solarized Dark) because it is designed to be a pair programming theme. It works best if you make your own palette, though.
Saying all that, there should be no reason you can't set up a good light theme with whatever colours you like, but you will probably have to do the same kind of thing as agnostic if you want to support bold well.