I take the straight up honest approach. First I make sure I'm talking to the owner of the company or at the very least, the one who makes the decisions. Look through the site to find something that is wrong with it, don't nit pick, but a valid issue with the site. Then say something like "I was looking at your website and I was having trouble finding information on X" or "I couldn't locate Y" or "when you go from one page to another Z happens", etc". That starts them off acknowledging that things are wrong on the site. Sometimes the business owner doesn't even realize it. Then spin it as, if I was having trouble, some of your potential customers may be having trouble. That gets the wheels turning that they need to do something to help their business. Then ask if they do their own website in house. It's either someone who may know a little about websites or they pay someone to do it. If they pay someone, ask them if they're happy with the service they are getting (DON'T ask about price specifically! wait on that). Get general information, if they have a contract, are they being charged for updates to pages, etc. By this time you've worked your way in and can start the pitch of "My company may be able to help you with this and get things going for less than what you're paying now" blah blah blah. Spending less to get more sounds great to any business man. But he'll counter with "Oh I only pay X" and that's when you say "Wow, they're charging you that much and giving you so little? That's unethical!" Then they start thinking this guy might be on to something and the current person they're using is ripping them off. By this time you're pretty much in and can tell them all the great awesome things you can do for them.
Be a buddy who is offering advice to help them improve their business. You're main concern is helping a fellow local business owner. Comes across more friendly and personable than a straight cold sales pitch. Look at it this way, a carpenter probably knows an electrician they would refer work to, the electrician knows a roofer, the roofer knows a plumber, etc. They all have someone who stands above all the others because they have a friendly relationship between the companies, not from sales pitches. The web guy can fit into that circle by building the same friendly relationship.
The top businesses that bring in the coin for me are construction, restaurants, hair and nail salons, and small mom and pop businesses. There are TONS of them in your area and they all need to compete against the bigger businesses. Most don't have a web presence and if they do it sucks because it's not something they know a lot about. You're there to give them that edge, at a reasonable price