According to your experience, does it worth investing in a pre-launch campaign to gather e-mails/facebook likes/twitter followers/... and later promote your product with it goes live? Or does it worth more investing time and money to generate traffic when the product is launched?
Either is fine. The key is just getting lots of traffic in order to get leads then emailing your leads to sell them your products and services you think suits them. It is only when you have a huge list, then you can do a pre-launch campaign to make your list excited about what's about to come, before you go in for the kill.
For sure it is a good idea to start marketing your product before launch. There are two main advantages of such actions: 1. You can get valuable beta-testers for your website/application. 2. Users that take part in any beta-release easily become your brand's ambassadors/real fans.