history displays a list of all commands you have run on the terminal since the history list was last cleared. It is invaluable for referring back to a big complex command or set of commands you ran at some point in the past. The -c flag clears that history.
Yes, my comment only applies to the shell history in memory. -c clears history immediately, but you can still reload it from disk if you haven't overwritten that with -w. If you tend to close your terminal windows frequently and rely on the history feature between sessions, it would benefit you to learn about the intricacies of the on-disk copy of history and how its affected by writes, appends, clears, crashes, etc. I tend to leave my terminal windows open a long time and copy any complex commands out to my PKM if I need to save them for future sessions, so I generally try not to rely on .bash_history, but it has saved my bacon on more than one occasion.
(I'm not too familiar, someone else can clarify: is this available outside bash?)
What's interesting to me is the -a option, which lets you "flush" the history for the current session without ending the session. I can see that being useful!