Peter you make good points!
My experience -- don't speak anything to these people on the street. And if you are going to say anything, speak Thai. I know most visitors can't speak thai.
Learn these Thai words:
"Mai ow" -- No, don't want it.
"Mai chai" -- No.
Say them and nobody will bother you at all after that.
If you can't grasp those Thai words, then just say "NO" in English. Do not say anything else other than NO to all of their questions. Never shake anyone's hand who just comes up to you and wants to be friendly. Don't worry about being impolite, as they are the ones being impolite by bothering you on the street. This is unacceptable to come up to Thai people like that. Do not respond by saying "maybe later", or "oh, I don't know", as you can guarantee you will continue to be bothered. Learn the word no right away.
Oh, and it is mostly easy to avoid being ripped off by taxis in BKK. Never talk to the taxis waiting outside of hotels, or beside pat pong, etc. Just walk right past them. Always stop a taxi that is moving, get in, say your detination, and the taxi driver will turn on the meter. Don't expect this from a taxi sitting around soliting tourists. Oh, and it is not usual for Thais to tip taxi drivers, and when tipping is involved, it is usually just rounding up to the nearest 10B or 20B.
I'll stop blabbing for now.