From the apt-get man page,
-s, --simulate, --just-print, --dry-run, --recon, --no-act
No action; perform a simulation of events that would occur
but do not actually change the system. Configuration Item:
APT::Get::Simulate.
Simulation run as user will deactivate locking (Debug::NoLocking)
automatic. Also a notice will be displayed indicating that this
is only a simulation, if the option APT::Get::Show-User-Simulation-Note
is set (Default: true). Neither NoLocking nor the notice will be
triggered if run as root (root should know what he is doing without
further warnings by apt-get).
Simulate prints out a series of lines each one representing a
dpkg operation, Configure (Conf), Remove (Remv), Unpack (Inst).
Square brackets indicate broken packages and empty set of square
brackets meaning breaks that are of no consequence (rare).
So just make sure you apt-get -s upgrade.
If you want to upgrade certain packages, just apt-get install <package name> and it will update it if it's already installed. It will however also have to update all the dependencies as well, and depending on what they are, that can cascade into a lot of updates.
If I'm behind on package updates, I'll do an apt-get install on some of the big ones (maybe php, apache2, etc.) so I can keep them contained and check any issues, and then apt-get upgrade after I'm done.