A buffer overflow is when a program receives an input of some kind (ie. thrue internet, console etc.) that it is not expecting and can't handle. For example if I make a program which is expecting you to write 5 characters into the program, but instead writes 5000 chars my program might not handle it corretly so it perhaps continue to write the characters into memory on places it shouldn't touch (where, very simplified, another program might have its settings).
A simple search at google gave me this page. It's more info than I would have felt to write tonight =)