Don't go in with a warlike mentality. "This thing--how much? No that's too much" doesn't work nearly as well as:
Walk around a bit, talk to the guy, ask him about his family, joke around with him, ohh by the way this looks pretty what is it?, chat for a while longer and take a look at the picture of his grandson in his wallet, can you give me a good price?, show him a picture of your grandson, ohh wow if I pay that I won't have any money left over for lunch!, make a joke about that idiot tourist nearby making a mess of things, how about this I'll pay you $x.
Rinse, wash, repeat. If you know any terms of endearment in the local language, use them ("chabibi, that just won't do"). If it's a touchy-feely culture, touch the guy on the arm a few times. Be willing to walk away as mentioned above.
Once you settle on a price give the guy a firm handshake and a smile. Not only will you get a better price (because you're showing some sensitivity to the guy, you're haggling in the way that locals in many cultures haggle, and he'll like you a lot more than the average tourist that lumbers by), but you'll also have a lot more fun.
It's supposed to be a dance, not a battle.