Here's what I do (now because it might not work in 6 months time but I'll cross that bridge when I get to it)
When dealing with her I always try to stay super calm because when I tell her no in a calm yet stern way she usually listens better than when I'm yelling and screaming like an out of control bloodhound.
I'm not totally against a smack on the bum (sorry I know there is a nicer way to say that but you all know what I mean) but it DOES NOT work for my child. I did resort to that once but it just got out of hand so quickly and I feel guilty and next time she's frustrated she hits me. The reason why I know I can't go the hitting route is because for the life of me I am hitting out of frustration or anger and that makes her behaviour 10 times worse and the only thing she learns is that it's okay to hit when she's frustrated or angry. So I had to come up with something different for her. (this is for my child, if it works for you then super)
Here's what happens in my mind when we are heading towards a meltdown - I'm sure you all know that it can be spotted a mile away.
First I distract her, (not in a come here now! type of way but in a lets go find your doll emma! yay, drool smile slobber, kind of way) 7 out of 10 times that works fine. If it doesn't and she carries on I always quickly in my mind work out whether I don't want her to do what she is doing because she really can't or just because I don't want her to (she's going to make a mess, or I find it's too hot outside for me, whatever the situation is) If I find that the only reason she can't do something is because I'm being stubborn/lazy etc then I'll let her continue because I'm picking my battles here and I sit down and play with her and just spend time with her even if it's going to mess or the sweat is dripping down my back outside.
If it's something important like playing with the plugs or that we need to go somewhere then I calmly explain to her why she can't do what she wants and again try redirecting. If that doesn't work, I calmly remove her from the situation in an assertive way. If she cries, I explain and again try distracting. If she doesn't calm down I'll tell her that I'm going to leave her here to work it out and walk away. This does one of two things, she either calms down and follows me and I'll pick her up and again explain why I said she couldn't or she screams more and stomps and throw things again I'll explain, walk away or distract. By now I know what gets her attention, but sometimes when she just want what she wants when she wants it she also needs to learn to deal with her emotions.
She is by no means an angel but she's doing well, if I stay calm nothing lasts more than 5 - 10 minutes. The other day I was hot, tired and stressed and lost my cool completely and it lasted 30 - 45 min in the end only to realize that I was being unreasonable.
Juggling a job, house, husband, child and studying isn't easy and I pms with the best of them but when B turned 14/15 months I was bouncing off the walls with every tantrum and after a while I just couldn't do it anymore. I became a horrible screaming out of control person and it didn't do either of us any good. Now things are quick and easy but it took some hard work on my part to get there, OCD and a need to control things really don't go hand in hand with toddlers!
So that's what I do, hubby knows the drill and backs me up and vice versa, if I feel like I really won't be able to control my emotions I tag him. He does the bath in the evening and believe me sometimes she cries through that and changing and nappy, teeth brushing and bottle into bed - big old tears but I know she's just tired. Whoever of us two is the most calm gets to deal with her then, usually to get it over quickly we both pitch in and work quickly around the crying, kicking, screaming. If either of us get too worked up we walk out to calm ourselves first.
You know what they say about fighting fire with fire!
So that's us. Sorry for the long story, just thought it might help someone else too.