Is asking students to debug existing code better than having them write new code?
I give students targeted debugging exercises to make them aware of common traps that they can fall into while coding, and I believe that this is beneficial to them.  Certain errors come up all of the time, and pointing them out can be a real time-saver for students when they code their own labs.

I also give out small bits of badly-formatted code, with poor variable names, indentation, etc.  But these are always to call attention to the importance of good coding practice.

However, I do not emphasize either of these activities heavily; the ability to conceive of algorithms is still of the utmost importance, and I don't want to halt students' growth along this more important axis.  And switching entirely into debugging might (perversely) not help them learn the most important skill of debugging, which is to test with extreme regularity as you work, since you are providing them with fully implemented (bad) code.

So, yes, by all means, give students limited, carefully targeted debugging exercises.  But don't switch completely over to this activity.  Finding bugs is important, but it is only one skill that a budding developer needs.