Check out www.drphil.com - he has some excellent parenting advice.
Try to be consistent. Inconsistent discipline seems to produce worse results than none at all (because they KNOW that at some point you will cave). Choose your battles. Don't make an issue of inconsequential stuff, but if you do draw a line in the sand STICK TO IT.
Our DS (2.2 yrs) has time out (in a very boring place - an old stripped down cot, or the bathroom). No toys or other distractions there. He only comes out if he smiles and (if appropriate) apologises. First time was a tantrum of the universe, and he yelled everytime we went in to try and get him to apologise. But we put the ball in his court "you can come out whenever you want. You just need to stop crying first. And say sorry". After the first time, we've only needed a few time outs (lasting about 30 seconds to a minute each time). But if the behaviour persists he goes right back.
Also, if he wants something he has to give us a smile first (even if it is a bit forced). No smile, no treat.
We NEVER "reward" bad behaviour. Any inappropriate crying or tantrum means we go right home (even if we are in the middle of shopping, or a kid's birthday party or visiting friends) and into time out. The only exception is if we are out having a family meal at a restaurant or other family treat, then either mum or dad sit in the car with DS, who is strapped into the car seat and ignored, other than being told his behaviour is not appropriate for a restaurant (if he calms down and apologises and promises to behave he can go back in, but only gets one second chance). We don't go home then, because we don't want DS to ruin the meal for everyone. Only had to do this twice.
DS now knows very firmly where our boundaries are, and what will happen if he crosses them. We do not have many rules, but the ones we do have are explained. He gets a chance to redeem himself. He is told what the consequence will be if he keeps it up. He then gets the consequence.
He can predict the consequences of misbehaving with 100% certainty. We make sure he knows what he is doing is wrong and why.
We always do it in an empowering way eg "You choose, do you want to stay in the restaurant with everyone, or do you want to sit in your car seat? If you want to stay, you need to behave. If you can't behave, you need to sit in the car". He always gets a "You choose ..." option.
And ALWAYS back up the other parent or other caregivers. In our house we have a saying "Whatever mommy says, daddy says the same thing" (and vice versa). No divide and conquer here!
It is still a challenge, and he still pushes the boundaries. But now when we say "do you want to sit in the car" or "do you want to go to time out" - he will usually choose the other option (as in "no time out, sleep please" - ah, music to my ears). This also takes the stress off you. It is DS or DD's choice. If they behave well, they get a positive response. If they misbehave they get the punishment. So the ball is in their court, not yours. It also helped me to be calm when disciplining (because it took the emotion out of it). Being calm myself, made DS calmer.
Of course maintaining the discipline is stressful, but it is already paying off HUGELY, and is much less stressful than tantrums.
Also we give as much positive encouragement as we can, and do try and redirect his attention if possible. But somethings are just not tolerated (like kicking pregnant mommy in the tummy! or screaming in a restaurant). Also, we try to give him as much control over his environment as possible (makes them feel useful and like they are contributing). So for stuff that makes no difference to us, he gets to decide (eg. what clothes to wear, what to eat in a restaurant, even what clothes dad should wear on the weekend!!).
Hope this helps someone. We rely a lot on Dr Phil's advice, and it really works for us. Not sure if you get Dr Phil on TV in your country (we get him here in New Zealand, and video tape all the programs on parenting, and tried out his suggestions and found them to be pretty amazingly effective).
Good luck