The version information is available by typing
list-packages (a) directly in the standard view in the second column (b) by hitting return on a given entry displaying more detailed information. This is valid for both installed packages and for packages available from the repository.
For packages you have installed, they will be found in a directory of the form
~/.emacs.d/elpa/package-name-version, or under
package-user-dir if that has been changed, so the director name includes the version information.
Other system installed packages may be found under the directories in the
Programmatically the list of packages installed is available after
package-initialize in the variable
package-alist, this contains version information to as a separate field in the data structure. Note "installed" does not mean "activated", the list of names of such activated packages is in
package.el includes the function
package-menu--find-upgrades which gives an example of checking version of installed packages against those available from the repository.