(This looks like a lot, but it usually takes me 2-3 hours all together)
I use a combination of Google Maps, LinkedIn, Googling, Virtual Assistants, and my friends.
Let's say I want to work for software development companies in Eugene, Oregon. I'd go to Google Maps and search for those (and similar) keywords. I'd make a list of companies in a Google Doc.
I'd go to LinkedIn and search for the industry in my area and see what companies match the size / description.
I'd Google for the industry and the location I want to work in. (Sites like http://siliconshire.com/ are great for Eugene).
I'd talk to my 10 closest friends and tell them the exact type of company I want to work for ("Hey Adam, I'm looking for a freelance Internet Marketing role with small (5-10) person businesses. I'm looking to work on Search Engine Optimization, Content Creation, and Social Media. I like companies that are focused on selling products, like organic soaps. Do you know of anything like that?)
I'd use a Virtual Assistant (like Fancy Hands) to automate some of this research.
Then I'd go through the list of companies I generate, visit their websites, read their blogs, and see 'Is this a company I want to work for?'
If it is, I contact them. If it isn't, I'm the wiser for researching.