Continuous integration is an eXtreme Programming (XP) concept. It was introduced to prevent integration issues. Developers commit code periodically and every commit is built. Automated tests verify whether everything is integrated or not. It helps in the incremental development and periodic delivery of the working software.
Continuous integration is meant to make sure that we're not breaking something unconsciously in our hurry. We want to run the tests continuously and we need to be warned if they fail.
In a good software development team, we'd find TDD as well as CI.
For continuous integration, you need a common code repository to store files (such as SVN, Rational ClearCase, CVS, Git, and so on.), automated builds, and tests.
Every developer works with a local copy of the common code repository and when he is done, he commits his changes to the common repository. Then the automated build process builds the change on the common repository, automated unit tests run and flag error if anything is broken.
If a code compilation or test fails, the developer who made the change gets the information and fixes the code. So, the turnaround time is very quick.
Numerous CI tools are available in the market, CruiseControl and Jenkins are the widely used ones.