You can check for the existence of /proc/[pid]/exe and if it exists you know the process is running the correct version.
If the source file exe points to has been overwritten /proc/[pid]/exe becomes a dead link.
Providing you know what your looking for this is probably the most reliable means you can use to get the data. If you dont know what your looking for (just looking say for all pids that dont have a media backed executable), you'd have to employ some heusteric to try to figure out the original execution path of the process based off of its $0 given name (which can be altered by the process at execution time). I assume this is what @Zoredache's suggestion of checkrestart does.
As far as I know (and as I've tested) this behaviour of /proc/[pid]/exe is always true - even if a new file name in the same path as the old file name is written there. /proc/[pid]/exe always becomes a dead link when the original copy is gone.
Whats nice about this is that it should be distro ambiguous since it does not rely on the package manager but the manner of which the kernel behaves..
#!/bin/sh
if [ -z "$1" ]; then
echo "Specify a process-id" >&2
else
PID=$1;
fi
PATH=$(readlink /proc/${PID}/exe);
if [ $? -ne 0 ]; then
echo "No path for this process! Process is likely running an old copy!" >&2
else
echo "Points back to ${PATH} and is running the latest copy"
fi
I would also point out this doesnt do exactly what you was looking for as whilst it will detect a process without its media backed executable it will not provide you with what particular version that process might be.