We're not great at "sales", so it's been completely organic growth and word-of-mouth. I went to a lot of events and meetups for startups, and talked to people about what they were doing and what we do. I've also done a lot of open source development, including working on the Rails core team and building our own projects like Dynatable.js.
This took a lot of time to cultivate a sales pipeline. The company was just me for the first 4 years, occasionally sub-contracting as needed. Then over the next 6 years, we grew to 6 people, and are currently in the process of finding a developer-consultant to join as our 7th.
We took some time to create our consultancy website and make sure we're communicating our value and principles at least somewhat effectively.
It also helps having satisfied past clients who will speak well of you when someone calls them up.
We don't really do any speaking, blogging, traveling to conferences to network, or anything like that. I just advertise on a couple of websites like HN who wants to be hired, for hire subreddit, angel list, startupers.com, etc to let people know we're on the market looking for a new project. We usually find someone who is a good fit within a couple of weeks.
We are also involved in the local tech community and in the past we would get some projects through word-of-mouth, but those were at lower rates near the beginning of our careers.
You could also try platforms like codementorX and moonlightwork until you manage to connect with someone yourself.
So far we have a history of delivering on what we promised (knock on wood), and we make sure to communicate that there is a very high chance that we will be the last team they will have to hire to solve their problem.
There's one more thing... A couple of years ago we created a passion project (https://news.ycombinator.com/item?id=8547351) that experienced quite a lot of traffic. I'm not sure how much influence (if any) this had on our ability to find clients, but a few of them did tell us how cool it was.