I'm having an app in private beta for some months now. When should I move it into public beta?
The purpose of a private beta is normally to "smoke test" an application before turning it loose on the world. You want to make sure that:
Those questions are not always easy to answer, so you definitely want to define your beta beforehand (or if you are already in private beta, define the goal state). It is easy for things like "feature creep" (the process of continuing to add more "must-have" features which themselves create new bugs and problems) to delay a release indefinitely if they aren't well-managed.
If you are stuck in a private beta and not sure when to end it, go back to asking yourself, what is the core purpose of this application? What must-have features support that purpose? In other words, what is the minimum viable product that you can release? If you have already achieved that, you are probably ready for the public to see your application.
From there, you have a choice of how best to transition from private into public beta. As mentioned by others, there are many services that have combined the two by allowing things like invitations -- most famously made to work by Google's Gmail service. In my opinion, though, this is not really needed unless you have a natural predisposed user base, which most startups do not. Companies like Google, Facebook, etc. have a unique advantage in launching new services in that they have a huge number of people who will adopt them "just because" (this is, of course, a great problem to have).
Once you can answer those three questions above positively, you are probably ready for a public beta.
The main thing is to consider is the reason(s) for doing it a private beta in the first place, are those reasons still valid?
Also consider if you can move to the inbetween version (like gmail was for a long time) where the testers can invite others but in numbers you can manage...
To answer your question you must ask yourself two simple questions:
If you answered yes to these two questions you are definitely ready for a public launch. If you answered no to either one consider researching more so you can release. Make sure you release though, don't be in beta forever. My favorite Paul Graham quote is "what the F#$k are you waiting for!"
I hope this helps answer your concerns.