Well, I can give a basic description of what they do, and then explain P.
PID is used to keep track of variables that can change over time, as well as adjust how much things react to a given variable. Let's say, for example, you've just built an NXT Segway using the light sensor, and it's 8:00 in the morning. You start out with a few readings right at the beginning to get an idea of what light level represents "balanced". From there, you compare each new reading to the first one and make a decision.
Let's say your robot is leaning forward a little: your reading will be higher, so you make the motors move forward a little. Let's say that your robot is leaning forward
a lot: now you make the motors move forward
a lot. This is P. (P stands for Proportional, so this makes sense.)
Now assuming your robot responds with enough proportion to keep itself standing up, you're good to go: your robot can stay balanced. But as time goes on, the room might get progressively brighter (the sun's till rising, right?). So your robot will start drifting forward more and more. Why? Well, if your sensor reads brighter (leaning forward), it drives forward to compensate. So as the room brightens, the calibration you did at the beginning is now useless. This is where "I" (integral) and "D" (derivative) come into play.
I'm not very good with those two yet, so you'll have to find someone who
really knows what they're talking about and have then explain it. Basically, they watch for things like a drift in compensation (you lean forward more than backward, for example) and compensate for it. This could correct things like sunlight levels, or even light readings being affected by your batteries being slowly drained (a probably much more realistic problem than sunlight). As far as I understand it, "I" watches for a drift in "P", and "D" watches for a drift in "I".
Some great places to learn PID in NXT-G
here (for 1.0) and
here (2.0).