Damir Horvat summarizes the answers to a question he asked about Smalltalk on "Stack Overflow" recently - the upshot is, it's what you use when you have a complex object model and requirements that aren't set in stone.
Thinking about that for a second or two, that's most projects :) Want to be more productive and get done faster? Try it now.
One thing I don't like about the top answer there is this:
"You spend much time correcting errors that other (typed) languages detect at compile time. This means you have to test more and spend more time with trivial syntax problems than in other languages"
Having sent a good deal of time on two decent sized projects - BottomFeeder and Silt - I can say with a fair bit of assurance that it's simply not the case. People without much Smalltalk experience are always convinced of this; to their way of thinking, how could it be otherwise? The reality is, the trivial kinds of type errors being talked about almost never happen in Smalltalk. Heck, they happened to me a lot more in "C" due to the brain dead type system being combined with static checks. Bottom line - that's something most people simply have to experience themselves before they believe it.