There are two ways to get leads. Inbound and Outbound. In the long term you should be getting a large percentage of your leads via inbound channels. (People who find you in search results, our read your blog, or find you via github and twitter.) This takes time to build up so in the meanwhile you need to get leads via outbound channels. (Actively pursuing users who are looking for your services.)
- Setup a twitter search for “business term”. If you specialize in Asp.Net development look for twitter search terms “Asp developer”, “Asp development” and similar. If you find people who are looking for your services do a @reply to them, and tell them about your services.
- Look at your industry short term job portals. Send a mail to the advertisers.
- Mention your specialities and skills in twitter and linkedin profile, so people who are looking for your skills can find you.
- Create a blog with useful content related to your niche. This lets people find you via search engines and makes you an authority.
- Create useful open source work related to your niche which will allow you to prove your expertise, and ensure people come to you.
- Speak at conferences. Most technologies have conferences focussed on the technology. Speaking at these will allow you to meet and build relationships with people in your industry and create mindshare about your company.
There are other channels such as Google Adwords and Facebook advertising, but I have never found them useful.