The file etc/MAILINGLISTS discusses the purpose of each GNU mailing-list. (See section What informational files are available for GNU Emacs? on how to get a copy.) For those which are gatewayed with newsgroups, it lists both the newsgroup name and the mailing list address.
comp.emacs is for discussion of Emacs programs in general. This includes GNU Emacs along with various other implementations like JOVE, MicroEmacs, Freemacs, MG, Unipress, CCA, Epsilon, etc.
Many people post GNU Emacs questions to comp.emacs because they don't receive any of the gnu.* newsgroups. Arguments have been made both for and against posting GNU-Emacs-specific material to comp.emacs. You have to decide for yourself.
Messages advocating "non-free" software are considered unacceptable on any of the gnu.* newsgroups except for gnu.misc.discuss, which was created to hold the extensive flame-wars on the subject. "non-free" software includes any software for which the end user can't freely modify the source code and exchange enhancements. Be careful to remove the gnu.* groups from the `Newsgroups:' line when posting a followup that recommends such software.
gnu.emacs.bug is a place where bug reports appear, but avoid posting bug reports to this newsgroup, instead see section Where should I report bugs and other problems with GNU Emacs?.