<p>I work for a product development company.We first do internal releases,and then public release.I was wondering, how other product developing companies manage their release? How do you give release number? Tag the source control?</p>

We use SubVersion, where tags and branches are cheap to create.
As far as releases go, we follow this convention:
(Major Release).(Minor Release).(Patch Release).(SVN revision)
Patch Release = bug fixes
Minor Release = binary compatible /
interface compatible
Major Release = includes breaking
changes.
Does that make sense?  If you need more information, add a comment and I'll edit my post to clarify.