I did a few jobs for cheap and either the same people came back to me for more work or they told people they know about me. I also have a friend who runs an IT company and he passes work my way from time to time as he only handles hardware and support.
I also got lucky and managed to get onto 5FM where I ran a special where whoever called after hearing me on 5FM would get a website for free and only had to pay the hosting. That brought in quite a few clients
The advantage I have is that I have a full time job so I can afford to undercut the market in most cases. Did a job a few months back that would have easily cost R50000 or more for R12500. The trade off is that the client will have to wait longer for the deliverables. Now that people are getting to know about me by word of mouth I'm starting to only take the bigger jobs as the smaller ones are no longer worth it unless I have a small gap to fit them in. Also the value add of me being willing to make changes or help out with support issues without charging is a huge plus for some of my clients; elsewhere they could easily be charged R350-R500 for something silly. It does get frustrating sometimes but it's my niche and works for me. I sometimes even go so far as to give free support to clients who I have built a website for but chose to host elsewhere. I can guarantee you if they want another site done, they'll be coming back to me, even if I increase my prices.
Either way, my motto has always been that if you give quality work and service then everything else will follow. If you get into business just to make millions then you tend to fail. I set out to give people quality websites at a reasonable costs. My pricing was insanely low when I entered the market. I worked at a web dev shop that was charging R30-R60k per website, I was giving my first batch of clients the same thing for R2500. I will do a site for really cheap from time to time to get people in and paying hosting which is great for a passive income.