One useful bit of boolean theory that I use quite often in programs is De Morgan's theorem, which allows you to simplify boolean expressions. It's known by all digital hardware designers, but also has an application to programming. Simply put, De Morgan's theorem says that (in C syntax):

!a && !b is the same as ! (a || b)

and also

!a || !b is the same as ! (a && b)

So in other words if you find you have an if expression that looks like this:

if( !bFinished && !bDisconnected && !bWaiting ) { ..... }

Then this can be rendered instead as:

if( !(bFinished || bDisconnected || bWaiting) ) { ..... }

Which can sometimes improve the readability of the code.