I am a single female and after having experienced "professional" panhandlers, I have developed the following tack to deal with them. I donate to organizations, not individuals (unless I know exactly where the money is going). I do not want to be responsible for enabling someone's problems.
If someone approaches me, follows me, and asks for spare change, I tell them I don't have any cash, and they usually move on. My boyfriend will usually hold up one hand and just say no before they get the chance to ask, and that usually is enough. We are usually courteous and respectful, yet firm and authoritative. I haven't been cursed at yet in Raleigh.
If someone approaches me asking for money for something specific, such as a bus ticket or food, I reiterate the "no cash" stance and offer to buy it for them. "Hey, I'll be glad to take you over to the bus terminal and buy you a ticket." "I'd be happy to buy you a sandwich from McD's." I would be willing to purchase a ticket for someone who really needs it, and I have given leftover food to people who were claiming to be hungry, but this is a good way to find out what their real intentions are. This approach is most often met with a "No thanks" so they are caught in a lie and usually don't pursue it any further.
I think if the majority of people took similar approaches instead of giving in to just anyone who approaches people to ask for money, there would be less incentive to approach or be aggressive in the first place. If they are truly in need, there are resources available for them other than being enabled by a naive public.