The most elegant way I see is to use:
f[list_] := Module[{},
<do other stuff...>
]
f[list_]/;ArrayDepth[list]==1 := f[{list}]
When ArrayDepth[list] == 1
, it will put it on a list.
The DownValues
evaluation order goes from the more restrictive case for the more generic one.
Update:
Using @0x4A4DJ.M.'s comment, we could write it as:
f[list_?VectorQ] := f[{list}]