Config files are essentially files that contain information required for the successful operation of a program, which are structured in a particular way. Rather than being hard-coded in the program, they are user-configurable, and are typically stored in a plaintext file (although I have previously seen programs that have used SQLite databases as their config files).
Surprisingly, there’s no defined standard on how config files should work, or what they should look like. It’s entirely up to the whim of the developer of the program.
If you’re a Linux user, you’re probably going to be familiar with these, as many basic maintenance tasks require you to edit config files. If you want to tweak GRUB to dual-boot your system, or set up a web server, you’re going to have to deal with them.
Although it’s not an exclusively Linux thing. Depending on what you’re doing, you might have to edit them in Windows or Mac OS X.