Here is a technique I've used with success. View all of the small projects as referral sources. That means:
Build up a portfolio
- Use any cheap technique you can. Freelance marketplaces. Friends and family. Referrals. Cold calls and emails (read Ryan's link on how this can be done poorly). The size of the client and project isn't that important if you are new. The goal is simply to build up a portfolio.
Strengthen your portfolio
- Go above and beyond in helping them. This is key. If you are viewed as simply an execution shop, they will view you as a commodity. If you provide services well beyond what they are asking for, they will view you as exceptional.
- Try interacting with as many people at your client's company as respectfully possible. You never know who will give you a lead to another client.
- After completing the project, ask if they can refer you to other potential clients (maybe even offer a discount or rebate if one of their referrals becomes a client).
- After completing the project, ask if they can give you a testimonial.
Once you have a larger portfolio of completed projects and testimonials, it will be easier to go after larger customers.
Build up your brand
If you are just starting out and don't have a full pipeline of projects, use that downtime to focus on building up your brand.
- Give talks at conferences. Don't go to a conference as an attendee. Go as a speaker. Better yet, have one of your developers speak on a technical topic.
- Use social media. Pick one or two sources, like a blog and Twitter. Then use them regularly. Write about relevant topics. Share relevant articles, interact with peers, and establish yourself as a thought leader.
- Write articles. Write some great technical content that can be featured on another highly-trafficked blog or magazine. You may need to work on such relationships in order to get these guest writing opportunities, but a few well-placed guest posts can be helpful.
- Hold workshops. You can charge for these or offer them for free. Both have their pros & cons. The goal is to show to the community that you are technical leaders. Perhaps someone you train will work at a large company that needs your expertise.
- Always be networking. Carry your business cards around. Go to local meetups, networking events, etc. Not all events are useful, so be scientific about measuring which ones are productive and which ones aren't.
- Always be consultive selling. As a technical leader, people will often ask you for advice. Give it, at least the high-level answers. It's almost impossible to offer a truly accurate answer without knowing a potential client's specific situation anyways, so use these opportunities as a chance to close a sale.