The first, as is likely in your case, is that one (or more) packages' new version's now depends on a package that you don't have installed. So, for instance, you might apt-get install bug-buddy. Among all the other normal spam that you see, you will also be told from memory):
The following NEW packages will be installed:
bug-buddy-helper-package
(Note: That's not exact; I'm just trying to make a point.)
You'll then enter "Y" to continue, and it will download the new version of bug-buddy as well as the bug-buddy-helper-package package, and both will be installed as normal.
You might *THEN* do an apt-get upgrade, and you might see that it's ready to install (choosing randomly from your list) file-roller eog, and all the rest of them will still be held back. You can install one-by-one in the same manner if you want to learn all the dependencies...But quickly, I suspect that you'll get to the point of not caring. :)
The second way that packages can be held back is because you've purposely marked a version as "hold". You can do this via the command:
echo "evolution hold" | dpkg --set-selections
The next time you go to upgrade, you will see, for example, this:
[root@halfadozen ~]$ apt-get upgrade
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages have been kept back:
evolution
If you then want to see which packages you have on hold, the following command will help: dpkg --get-selections | grep hold.