The first step for me, as an untrained bootleg marketer, is to identify the functions of your product.
Second step, identify simple words that explain the function of your product.
Third step, identify the context in which you would most like your product to be perceived in by your customers (techno, natural, family, pet, baby, rockstar, sports, etc.)
Fourth step, combine functional descriptions and the idea you've identified as your ideal context to communicate your product into a solid group of names.
Step five, look at your competition. Analyze the name and contexts of their brand IDs. Don't emulate them in most cases.
Step six, combine steps 1-5 into a name that does three things: communicates your products major functions, identifies the brand ID context that fits best for your customers, differentiates itself from existing competition. A good method for doing this is to google search every potential idea. If it has a lot of results, move on, the name is played out.
Oh, yeah, step seven: Emotionally prepare yourself to defend whatever you decide is the best name for your product against all the random haters you tell your name to.
It only took me 4 days of obsessive, painful, brainstorming to develop the branding for my company and product! It was not enjoyable by any stretch and I still have insecurities about them but deep down, I believe in the brand IDs I have. I think you'll always have second thoughts but many great brand IDs are pretty terrible: IBM, Shell, Facebook, Reebok (are you kidding me?), etc.