No need to yell, use leverage and incentives. Gaining a bonus or losing your job is a bigger motivation than your asshole boss screaming.
You're correct in the first part, there is definitely no need to yell under any circumstance, it makes you look unprofessional, incompetent and you end up losing a ton of respect.
But you couldn't be more wrong about the second part of your post.. Gaining a bonus or losing your job, ARE NOT GOOD MOTIVATORS, especially the the second one, which will only make your employees unhappy and searching for different job opportunities.
The first thing about this question is that it really does depend who you are working with, namely whether they are smart/educated in the field, or whether they are uneducated at all. But in general, the best way to get people to work hard for you is to empower them and give them some more responsibility. By providing them with the ability to make choices and decisions, your employee's will be much more motivated, because they feel like they are a part of something.
That really all stems back to giving them respect, which does not equate to being nice and/or a pushover. Your employees aren't supposed to fear you, they are supposed to respect you, and if they do, they'll work their butts off for you.
(This really is a much more complex topic than the post seems to imply, because many of these things are applied differently when dealing with various cultures and types of individuals)