Here's what you need to remember: You get what you reinforce. What you ignore dies.
With respect to learning to your son learning to say "no," during these "terrible twos," remember that you want him to have enough gumption to say no when someone asks him to do something stupid a few years down the road. I'm not saying that you will never have to use punishment, 'cause there are times when you can't think of anything better to do. Just use it sparingly. Reinforce the behavior you want instead.
I found that both work well.
Wrong = discipline
Right = no discipline
Exceptional = praise/reward
Kids shouldn't grow up to expect to always be complimented/rewarded for doing things right.
Oh, Johnny you didn't break out any windows today, here's a cookie. I ain't thinking so.