Although I like listening to some musicians on the street, I never hand out money. I do't think there is anything wrong with doing so, it is just not my style. How much you give is entirely based on how much you can afford, how generous you feel, and how good you think they are.
I highly doubt it is their only income, as it would not be enough to cover for their equipment, travel or everyday living. It ultimately doesn't matter whether it is their sole means of income or not; that should not affect how much you give them, if they are working for their earnings.
For some it is their only income (I have known a couple of people for whom it was), but it's usually not a very good income. Still better than nothing at all, and in some cases possibly better than the dole.
But I agree, you don't have any obligation to give money to strangers if you don't want to.