I'd bet that the vast majority of successful companies start with a problem, and then ask "how can technology help me solve this problem?" Sure, there are notable exceptions that worked backward, e.g. eBay, Amazon, Viaweb. They saw the inherent potential in a technology and asked "what problem can this technology help me solve?" And, no doubt, if you can pull that off, you're probably more likely to hit one out of the park rather than "merely" build a sustainable business. But most of the stuff that programmers build these days are solutions for non-existent problems.
I'd go so far as to say that, often, those who best understand the medium have the worst ideas of what to do with it. The more time they spend on the nuts and bolts of the technology, the less time they spend exploring other domains, where they might find more interesting and mainstream problems.