I enjoyed reading this article by Nathan Barry:
My summary in my own words:
Start marketing early – even before the product is developed. This helps to identify your audience and to write a marketing plan.
Write with a purpose. Set a goal and work towards the goal.
Analyze your starting point. Who do you have in your network? Who and what can help you reach your goal?
No marketing budget to buy ads? Start teaching. Teach everything you know. It’s a way to start building trust and building a relationship.
Create a good landing page with an email opt-in form.
Write educational blog posts. Focus on creating high quality blog entries that teach the reader. Re-write and edit your blog entries until you feel they could be part of a book.
Mention your product. Include an email opt-in form in each blog post. But don’t write to sell, write to teach.
Collect email addresses and send out a regular newsletter. Remember contacts go cold.
Plan your launch sequence. Communicate all details well in advance. Send a pitch email one day before the launch. On the launch day, send a simple announcement email. Publish your sales page. Consider offering a discount on launch day.
Say thank you to everyone who helped you on the launch.