Developers should be doing a lot of things. In my experience the trouble is that most developers are too optimistic and tend to neglect negative test cases. So most teams still need specialist testers to ensure acceptable quality.
(And please no one tell me that I should only hire developers who are already also expert testers. I have to operate in the real world.)
This is also a huge win for pair programming - code review is built in.