At the moment I check in all my files (including dll\'s, VS solution files, images, etc). I often need to checkout these files to a staging server or to a another developer
Any generated file (compiled, or release tarballs etc) should be checked in to a different area of the version control system by the build/release mechanism.