Some parents swear by spanking, "I give him a swat, and he stops." Then there are the parents who say, "I was spanked and I'm a better person for it." Yes, spanking can sometimes be effictive, but some studies show that spanking is only temporarily effective; it teaches the child "don't do that" but doesn't teach them why they shouldn't do it other than "if I do that I'll be hit." Some people disagree with those studies, though (and I highly doubt those disagreeing people have ever studied child psychology). We keep looking at this from the parent's point of view, though, and ultimately it isn't the parent who will suffer the consequences of spanking, so step out of your parenting shoes for a moment.
Go back to your childhood (skip your teen years). Slip into your memories. When your parents yelled at you, there was something in you that said "I'm not worthy. My own parent is treating me like this." If your parent insulted you, your likely felt like, "Nobody loves me, not even my own parent." Now remember what it was like to be hit by a parent (or imagine it if you were never hit). It makes the child feel all of the above (I'm not worthy. Nobody loves me. Etc.), but it also sends another message to the child: "I deserve to be hit."
Now jump back into adulthood. Imagine that your boss was unhappy with your work and began to spank you. Would you let him? Hell no! Why? Because you realize that you don't deserve to be hit for a mistake. You should be talked to with respect instead, respected as an employee and as a person. Your child deserves that same respect.
You are the boss of your child. You are the CEO of your house. However, you are also your child's teacher. If you hit your child, you are teaching your child, you deserve to have people hit you. You are also teaching your child, if you are bigger and stronger and more powerful, then it is perfectly fine to hit people to get them to do what you want them to do. Is this really what you want to teach your child? Probably not.
Time out needs to used as a cool-down tool. When your child is throwing a fit or filled with hysteria or rage, time-out is time to get settled, to regroup. Don't yell. Don't try to talk. Just say "time-out" and put your child in a time-out location. If he tries to leave that location, you put him back...again...and again.... When he is calm, talk to him about what he did wrong and why it was wrong. (I don't care if he's 2 or 20, you need to do this. Never skip this part.) Then tell him what he should do instead next time. Have him apologize to whomever he wronged. Give him a kiss, and send him off to play.
Logical consequences are better for just random mistakes. Junior forgot to put his toy away, so the toy now goes into the off-limits basket on the top shelf of your closet and he can't play with it again until tomorrow (or next week for older children). He broke his sister's toy, so now he has to do chores to earn money to pay for the

toy. (I've even done this with a 2 year old, and it works great.) He left his bike out, so now he can't ride his bike for a week. Sometimes these logical consequences are a headache for you too. What if he normally rides that bike to school? Well, you'll just have to figure out another way to get him there. Yes, it's a hassle, but a little bit of extra effort now will save you years of strife and effort later. Repeat a mantra if you must; here's mine: "I'm doing this because I love my child and want her to grow up to be a healthy, stable, strong, responsible, compassionate adult."
If you need discipline ideas for a specific problem, let me know. I've got lots and lots of ideas from my experience. I'm a mother of two. I've been working in childcare since I was a child and have taken care of children with serious behavioral problems. I've worked in public schools. People are often amazed by how I've been able to turn bullies into sweeties and helped troubled kids straighten out (yes I'm tooting my own horn, but just so you know that my methods really work). Oh, and I've never, never, never hit a child.