Jeff, nice post about needing some breadth to go with your programming depth. But, I was a littel disappointed with the content vs the title: I'd hoped that you'd be writing about the programmer's failure mode of approaching every problem with the solution "write more code" already in mind.
Really great programmers go to the heart of the problem, find what aspect of it adds most value to the user then write a very small amount of code to address that, and that alone. Programmers have a tendency to think that the thing that they do that adds value (and justifies their paycheck) above all else is write more code. And so they write code. What they don't take into account is that code is a liability for the customer, not an asset, so the less of it they produce (while adding value through solving the problem), the better.
Best of all, delete some. The very best programmers can take a new problem, find the essence of it, find the commonality with the essence of the problems already solved, incorporate the new solution and end up with less code than they started with. http://www.folklore.org/StoryView.py?story=Negative_2000_Lines_Of_Code.txt for example
Ivan Moore will even tell you that deleting code is a refactoring http://ivan.truemesh.com/archives/000393.html In fact, he sometimes says that even if that isn't your goal a good non-delete refactoring should allow you to delete some code, or else you are just pushing code around for the sake of it.