CheckInstall keeps track of all the files created or modified by your installation script ("make" "make install" "make install_modules", "setup", etc), builds a standard binary package and installs it in your system giving you the ability to uninstall it with your distribution's standard package management utilities.
CheckInstall keeps track of all files installed by a "make install" or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution.
What it does is monitor the make install command to keep a list of files installed, etc., and then it makes a debian package which knows about those files. To use it, you just build the software according to its instructions, and then use the install command in the instructions through checkinstall. So usually:
tar -zxvf source-app.tar.gz; cd source/ ; ./configure; make; sudo checkinstall make install;
Makes removal and reinstalling really easy!
It's really useful if you've got a tarball archive with software that you have to compile with the usual:
./configure --with-prefix=/usr/local make make install make clean
Use ./configure to keep stuff out of apt's way, and use equivs to let apt know it's there.