First, I read a lot: the WSJ every day, sites like this one, articles on a variety of subjects, and books. Second, I free up lots of time to do nothing in particular in terms of thinking, such as going out to eat, taking long showers and baths, watching TV, etc. Third, I'm always looking for problems people are having. Fourth, I try talk to people about their general experiences on the Internet. Fifth, I bounce ideas off my wife. In your case, that would be with your co-founder. Finally, sometimes I just build things for a day or two on a whim to see where it goes.
I maintain an ideas list which is added too weekly. They're not all gold dust and so far none of them have been strong enough for my to quit my day job but I am interested and excited by a few and actively working on them. I think you need to have a desire to build XXXX before you have a desire to build a business, otherwise you're putting the cart before the horse.
Anyway, with that useless rant out of the way, the best way is simply to think of something that annoys you (or annoys someone you know). Actually, don't think of the problem, think of the solution when you next come across an annoyance. And don''t go for something just because it sounds "cool". There's lots of talk about finding the "pain" that a particular customer/market has and solving it -- I've heard it so often it sounds corny but it's not.
Here's an idea that's been sitting on my list for a while: new album notifications. I don't subscribe to individual band newsletters or read music magazines, and my favourite artists aren't necessarily heard on the radio, so how am I to hear about their new releases? Well, Windows Media Player has a comprehensive list of my music and what I actually listen to (an a plugin interface). How hard would it be to poll Amazon once a month for new albums from my 20 favourite artists? Business model: Amazon affiliate sales by allowing users to buy/preorder through your application. Sure its not the best idea in the world but just an example of how I went from a problem to a solution (aka a business idea -- and, no, I'm not working on it).
I've tried this and it works for us.
Almost all of my ideas come from encountering problems. Sometimes it me who encounters the problem, sometimes some one I've talked to, and sometimes I read about it. For example, I was looking at doing some programming contracting, but noticed all of the outsourcing sites like ODesk have a race to the bottom where all that matters is price. Maybe there is an opportunity for a high end odesk that rewards firms have good communication skills and do more than work for a spec. For another example, I read about the horrible CPM's that Facebook gets. Maybe there is an opportunity to build an Adsense-like product for social networks that allows targeting based on user profile rather than page content.
The other thing I do is every time I see a brand new technology that has the potential to create a category, I think of all the things that I could build off of it. For instance, e-ink has this electronic paper that is easier on the eyes than paper. Who has high print costs that might benefit from this? School systems? Universities? If you can think of how a technology applies to a unique area, you can be the first to a lucrative market.
One of the hardest things about being a young company founder is that you do not spend time around people with a lot of money. You would be amazed at how many bigger companies just throw away money on crappy software or throw away time on things that could easily be automated. One source of ideas would be to spend time around people who have money.
i'm not a PG fanboy, your question is just directly relevant to what he wrote and i think he's right.
basically, often times ideas that turn into billion-dollar ideas come from doing stuff smart people would already be doing anyway - writing BASIC interpreters (microsoft), good search engines (google), etc.
edit: (seriously)
Oh, and keep a running list.
By another token, read a lot and read widely. Avoid reading junk...like how to get funded by VCs--you're not there yet. The more you read, the more you see how everything's related to one another, and you start to see where the gaps are that you can fill.
Most of what is being done today is incremental problem solving. What are some techniques that can be used to de-construct a problem so that you can get past previous experience bias and find new ways to solve it?
I guess what I'm asking is, what techniques do you guys use to get a view from "10,000 feet" above a problem rather than the biased view you get when immersed in the middle of it?
One heuristic that may help find different ideas is to look for challengeable assumptions in your current ones.
If you don't believe in brainstorming, what works best for you?
[Edit: See section 2 on brainstorming here; very interesting: