Just take this into your mind:
If you help someone and they don't have to do anything to get you to help them, they will consider the help as a friendly gesture, but attach no real value to it.
Helping without demanding something in return is good, as long as it makes you feel better and you're doing it because of that. If you're helping someone with something that you don't really like doing, or something that makes you feel frustrated, make sure you're getting something in return so it's an equal deal, otherwise you'll just be left unhappy and they'll be left emberassed for asking you.
I used to help people out with their schoolwork all the time because it made me feel good. Last week I helped a girl out of her life-long depression (not sure if she's completely out of it, but at least she has a proper direction in her life now), because it made me feel good about myself and because I wanted to see her happy which would in turn make me feel good again.
Today, somebody asked me to fix some computer problems for him, pretending like I was some kind of helpdesk. I told him to fvck off, because I didn't like doing it and nothing was being offered in return. Simple as that, no hard feelings.
Whenever someone asks you for something that they would otherwise have to pay for, tell them your hourly fee for doing it. They'll immediatly realise that you asking that is a fair deal.
Example:
"Could you help me design this logo some time?"
"Sure, I usually charge €15 per hour but I'll make it €10 for you" ...
He's expecting it for free, I'm telling him how it's supposed to work and nobody will ever protest.
Be helpful, but don't ever forget the simple rule:
Always make sure you get something in return.