Hi David!
It is not always obvious which arguments should be threaded and which should not. Using the Thread function you can specify how arguments are to be threaded. However, with the Listable attribute, the default behavior of Thread seems to be used (thread over all lists). For example:
SetAttributes[f, Listable]
Thread[f[{1, 2, 3}, {a, b, c}]]
Out[1]: {f[1, a], f[2, b], f[3, c]}
It is easy to think of a scenario where that behavior is not what you want.
Even if you could specify which arguments are to be threaded, sometimes you want to supply a list and not have it threaded at all. The Plot function illustrates this nicely:
Thread[Unevaluated[Plot[{x, x^2}, {x, 0, 1}]], List, 1]
This gives two Plots in a list. The default behavior for Plot, i.e. not Listable, would plot the two functions in the first list together, in the same graph which is most likely what you are looking to do.
That being said, according to the documentation:
Most built-in mathematical functions are Listable. »
Hope that helps!