Prior to a certain age children need a form of punishment to realize what they have done is wrong. Talk can be ineffective as their reasoning skills have yet to develop. I had a case where one child was just learning to stand and the other one was pushing the first one over. This was leading to a lot of bonked heads and tears. No amount of talk or scolding would dissuade the older child.
Then one morning I saw it happen againand gave a swat on the bottom within about 2 seconds of it happening. This opened ears to the message that her actions were wrong. It never happened again.
I believe it's better and easier for a child to learn by you teaching them. I feel that through punishment, the child learns "I shouldn't do this because mommy and daddy will punish me". However, if you let them know the behavior you want from him/her instead of the current behavior, why he should behave that way, and TEACH them HOW to behave that way they will learn "I shouldn't do this because its not right".