So it sounds like he's learned that he can get whatever he wants from you by crying. Smart kid! That means he can basically get whatever he wants, whenever he wants.
The first thing to recognize is the problem isn't with him. He's just being a toddler. The problem is you always give him what he wants when he starts crying. You are the one who needs to change.
The solution is simple. If he wants something you don't think he should have, tell him no. If he starts crying you don't need to get angry... there's nothing wrong with crying. But he does need to learn that crying does not get him what he wants. Reassure him that you still love him (you may have to wait until he's no longer mad at you).
If you are telling him no to most of the things that he asks for, you are on the right track. Never give him what he wants just because he's crying. If you change your mind and decide he can have what he wants, you still need to wait until he's done crying before you tell him.
It'll be rough for a day or two, but you have a smart kid he'll catch on quickly. This is also a great time to start teaching him to say "please" and "thank-you". Teach him the correct way to ask for things every time... it makes a big difference. If they forget, gently remind them. For example:
CHILD: "I want food!"
PARENT: "That's not how you ask. Say, 'May I have some food please?'"
CHILD: "I want food!"
PARENT: (silence)
CHILD: "I want food!"
PARENT: (starts to walk away)
CHILD: "May I have some food please?"
PARENT: "Yes you can!" (with a smile)