That is a hard question to answer because what may work in my area may not work in your area.
You mentioned referrals. Have you thought about some form of a contest with your current customers for who can refer the most in a period of time wins a prize? Make it something worth while so people will take the time.
Not sure where you are but in your area what is something that the local people are involved in? Our area is HUGE for youth soccer and highschool football. I have two highschools within 3 miles of my shop and talk about rivalry. If you have any of this you can always (and the schools are always looking for the money) sponsor games (football, baseball, soccer) I even have a customer with a daughter that plays bowling and the local team is really good so I helped by sponsoring that this year.
Getting your name out though local charities is also a great way to raise awareness. Not sure if you are involved in anything like that personally but for me I have used my shop and my knowledge numerous times with my church knowing and experiencing that there is ALWAYS a return not just financially but in the satisfaction part for me.
If you get your name and your business name in places that people care about and are involved with they will remember you.