I think that hitting should be kept as an option, but a slim option to use when nothing else will fit. My troubles with punishment usually aren't the methods, but the ways in which they're doled out. All too often, parents punish without making it clear what they're punishing or why - the sentence never fits the crime, and often the same punishment is used in all cases. Growing up, my household was a non-violent one, and the reason that discipline didn't work was that I was never told WHY I was being disciplined. Sure, I knew the direct reason, but I very rarely knew why it was wrong or what the consequences of my actions were. I was locked in the basement, left to think about what I had done, but I really didn't know what they wanted me to think about or why I was even there. All I knew was that if I wanted to avoid punishment, I had to not get caught. Needless to say, my morality came in late.
One week, though, I was staying at my grandfather's house while my parents went on vacation, and my brother and myself broke our bed by playing WWF on it. Naturally, we scattered, coming back a half-day later when we figured the anger had blown over. Coming into the house, though, we found Papa waiting there with a pile of scrap wood and three hammers. Instead of punishing us like our parents did, he explained that if we wanted to sleep in a bed that night, we would have to fix what we had done. We were gobsmacked; we had never had to take actual responsibility for our actions before. That was a theme that entire week, and taught me more about child-rearing than my parents did. If I ate up all the candy the first night I was there, I had none for the rest of the week. If I stayed out too late for dinner, I found none waiting for me when I got home. If unrolling two rolls of toilet paper into the toilet clogged it, we would have no bathroom until we plunged it. Papa was always there to help teach us how to repair our own damage, but we were always expected to do the work, and he was always there for us to ask questions of.
That, more than anything, is how I think punishment should happen. It's true that in the heat of anger it's difficult to think rationally, but THAT'S where time-out comes in, allowing you some room to think and calm down. All children want to be treated like adults; that's why they get into your good scotch and paint hideous Joker faces on their heads with your expensive Mac lipstick. Adults have all the power. We can do what we want, buy what we want, go where we want and make other little people to be their friends. I've found that not only will a child take better to punishment if you treat them as you would another adult, but they respect you more for the consideration.
This is, of course, assuming you want the result of punishment to be leaning and progressive modification of behavior, rather than just 'shutting them up'.