On one hand I'm happy that people are more enthusiastic about programming. On the other, I'm angry that I never jumped on this bandwagon - what a great way to make some income. Then again, I would probably have to own an iPhone first :)
Easy. You already had that knowledge and just didn't apply it, for one reason or another.
You know when something is cool in your chosen field(s). If you're a geek, that means when you first encountered a modem, IP, Linux or Google, depending on your age. As Pirsig - or rather, his muse - says in 'Zen & the art of motorcycle maintenance': Quality is what you like. Everyone has in-depth knowledge of something, even stupid people; so when the 'woah, cool' reaction takes place it's just a matter of relating it back to your area of knowledge and the significance thereof (obviously, if your specialty is knitting, carbon-fiber knitting needles probably won't make the front page...but then, there are a lot of knitters out there....what do I know?).
You can, and do, sense the potential easily. It's the 10% inspiration. The reason most people, myself included, don't capitalize on things like this is because they are unable or unwilling to commit the money or time. Kinda like romance, you know pretty fast whether you'd like to sleep with someone, but committing to seeing them daily requires a decision, and many of us are nervous of risking the money or time involved; indeed, nervous in proportion to our ability to be carried away on a wave on enthusiasm. In this case, I recommend setting a limit of time and/or money to invest, and a cutoff date by which you'll give up if it turns out to suck.
Yes, amateur programmers will soon run up against the limits of their knowledge; a few will go pro, others will give up. But the most important outcome will be from non-programmers and non-designers coming up with paradigm-busting ideas, which will look like crap at first but turn out to be important later.
Like being able to time the stock market, there are a few people who seem to be able to get in on an idea before it hits big but it's the rare person who can do it consistently. And like trying to time the stock market, for most people, trying to determine the next bandwagon to jump on is just a waste of time and money. This is why VC's need the breadth of investments they do, because they are mainly playing a numbers game - if they really knew which ideas will take off they would only have to invest in probably one tenth of the companies they do now. Can the skill be learned? Perhaps, but do you want to spend the time, energy and money trying to find out?