From my experience, improving your product (which is not equal to adding more features) is the best way to get new customers. That's because marketing that's not properly targeted is as good as no marketing, and let's face it ... technically inclined people suck at it. Even Spolsky, which is what I call a marketing drone, in his interview on "Founders at Work" confessed that they got more customers from incremental improvements than through marketing plots.
On the contrary, I think the main problem of software developers is that we rarely finish what we start.