As said in the comments to the original question: Why are there weird commas in my /etc/passwd file? and http://en.wikipedia.org/wiki/Gecos_field explain what these fields are.
To answer the question "why do they appear for some users and not others": this information is usually created by the tool that adds the user to the system. It does not make sense to have e.g. "Room number" for e.g. the sshd user, and thus these fields are left out by the process creating these users.
But why then do I see e.g.
mysql:x:107:109:MySQL Server,,,:/var/lib/mysql:/bin/false
in my etc/passwd? This user has probably been created by a script that for convenience have used adduser (present on many common systems) instead of the more low-level useradd tool (I think the naming could have been better), and adduser automatically creates the Gecos place holders. Alternatively it might have been a conscious choice at user creation just to adhere to the Gecos format for conformity, but I believe it is mostly unnecessary cruft in these cases.
Why then are the Gecos fields empty for my regular user as well? Because I simply never filled room number/etc. out when I created that user (I don't even know if I got that choice during system installation - I don't think so).
(On a sidenote: this system means that a full name of for example "Daniel Andersson, PhD" will be wrongly interpreted by most tools.)