A common codebase is, simply, shared by as many programmers on the team as possible. This is only practical if the team is using test-first programming, refactoring, continuous integration, and a single coding standard. It is also greatly assisted by agile pair programming.
So what are the benefits of sharing the codebase? Its proponents claim that, as with pairing, sharing the codebase reduces management's overall vulnerability to staff turnover, and makes it easier to deploy staff. If everybody more or less knows what is going on in all of the codebase, then you have more flexibility when figuring out who will do what in the next iteration. And if someone leaves the team, it is much less of a crisis; other team members can fill the gap pretty straightforwardly.
Other, perhaps more compelling benefits of sharing the codebase include simpler, better overall design, more design consistency, and better mentoring of programmers. All of these things, again, help make the code more extensible and the team more agile. They help the team deliver more running, tested features per iteration, and deliver them more consistently, with least risk.