There's an ongoing debate as to whether or not startups should operate in stealth mode until they're ready to launch. The answer, like most things in life, depends on timing. Before I get to the breakdown, however, let me address a very important point: Most startups that choose to go into stealth mode do so for the wrong reasons. They believe that a big competitor will see what they're doing and copy it. However, the fact is that big companies overwhelmingly dismiss little competitors, especially ones that haven't yet started delivering products. They don't see startups as threats. A startup can become a big company before it finally starts to get serious attention from other big companies.
Similarly, it's usually not necessary to worry about another startup copying your product or service. A startup that's looking for other people's ideas to implement is probably not going to do a very good job of it. Every startup faces the same kinds of execution challenges, so you're likely to be shipping when they're still figuring out how to implement your ideas.
In my opinion, the best argument for stealth is not to avoid educating competitors but rather, to avoid disappointing customers. I wrote a few weeks ago about not telegraphing your punches--not getting customers excited about your products well in advance of when you can deliver. I used Play and RED as two examples of companies that made their announcements years before they were able to deliver products. If you have a successful announcement, you'll get potential customers very excited. With luck, some of them, perhaps a lot of them, will be ready to buy on the day that you announce. However, as time goes on and you're unable to deliver, you lose credibility. Customers become impatient and look for alternatives, especially if they have to buy something in order to fill a need. The customers that buy alternatives are lost to you for at least one buying cycle, and may be lost forever.
In general, I'm not a big fan of stealth. It makes it much harder to identify potential customers and investors, because you've got to put everyone under NDA in order to say anything about what you're doing. It's perfectly fine to talk about what you're doing in general terms. When your startup is in its early phases, you can do effective customer discovery and even validation without disclosing too many details of what you're working on.
My belief is that you shouldn't do an announcement until you're within 90 days of delivering at least a Minimum Viable Product (MVP) to customers. That can certainly include a public beta. You don't necessarily need to be ready to generate revenue in 90 days, but you should be able to deliver a product for testing within 90 days.
Ninety days is a guideline; it's not carved in stone. However, the longer that it takes between announcement and shipment, the more credibility you'll lose and the more effort and cost it will take to reestablish customer interest. You may even have to redo the announcement when you ship. What's even worse is the "tease": Making multiple announcements without shipping anything. You lose credibility with every announcement that's not closely followed by a release.
To summarize, it's usually not necessary to operate in stealth mode in order to protect your ideas from competitors; most competitors won't care until you're big enough to steal significant market share from them. However, you should limit what you say to general information until you're close to releasing a product, at least for public beta.