Martin Fowler has a couple of good posts on Code Ownership here and here. I prefer the collective code ownership way mostly because I believe it encourages everyone to take responsability for the whole project instead of each one just worrying about his little corner of the code base (which can lead to a "as long as my code is OK, I don't care how everyone else's is" mentality). This is as much for my own benefit as that of others.
However, collective code ownership can be hard to grasp sometimes, but I've found out that people sometimes can get used to it far easier when working maintainance on existing code bases. For example, for many people it is hard to grasp collective code ownership when the project is just getting started and just a few lines of code have been written, since the code is barely evolving; but those same people have no problem falling into a collective code ownership pattern when fixing problems and implementing new functionality/forms/features on an existing code base.
I've had good success with weak code ownership, as find it a very workable approach as well.