Here’s a great post on why physical punishment often doesn’t have the desired effect. Some Reasons: Ten Reasons Not to Hit Your Kids. I think it applies to all punishment, not just spanking.
Some I definitely agree with:
1. If you hit your kid, they are likely to hit others, because hitting must be ok. And if you yell at them, they are likely to yell at others, because yelling must be ok.
3. A child who’s been punished becomes angry and focuses on the punishment and the punisher instead of how to solve the problem at hand. (I’ve found this hard to prevent when just using simple time outs or "you can’t do that." We always have to ask, "do you know why you are in timeout" and often he doesn’t!)
7. Anger and frustration build up.
9. Spanking shows the "might makes right." Someday both of my kids will be bigger than me. Does that mean that they don’t have to listen to me then? No!
10. It shows that hitting is an appropriate way to solve problems. That will be very frustrating for them when they enter corporate America!
The article explains these and the other points much more clearly. It’s worth reading.