A debugger is something like a CD player: it allows you to pause, reset, fast-forward, etc. your program (within limits). Along the way you can keep track of what values given variables have, what functions are being called, CPU registers, memory usage, etc. It is a fairly complex piece of software and it takes a little reading and experimentation to get a good handle on what you can do with it.
Even well-written software can misbehave, particularly if it is a complex system. A debugger helps you to figure out exactly where and then why a system exhibits certain behaviors (typically unwanted ones).
Personally, I don't have much experience with them, as my projects are usually under 10,000 lines of code, and I can 'debug' well-enough without them. But that's just me. Other people live by them.
At this point, you probably don't need to worry too much about using them, but it can't hurt to become at least familiar with basic functionality...