Sort of by definition you need a low-cost way to generate leads for small- and mid-sized clientèle, because there's so many of them and because you're not going to extract a lot of revenue per client.
If you won't get a lot of revenue per client, the per-client acquisition costs have to be smaller.
Cold-calling is OK if you're getting $100k deals -- it's OK if it takes a ton of work to find the sales.
This implies that inbound-marketing is the way to go.
However, there is a place for cold-calling -- to get to the "connectors" for the industry. For example, spending lots of time getting to know editors of popular websites and blogs means you get articles in front of thousands of eyes. Or sponsoring a user group in the right part of the country. Or even a selected tradeshow.
In short: If you're going to spend real effort, make it pay off in a multiple, not in a one-off sale.