The catkin_package macro is specifically for building C++ code; the CATKIN_DEPENDS (and DEPENDS) parameters to it specify the packages that are needed (via their include directories, flags, and libraries) for other packages to compile against this package.
There is some overlap with the dependencies listed in package.xml, but package.xml also includes dependencies for all languages, and run-time as well as build dependencies. The dependencies listed with CATKIN_DEPENDS are always a subset of these dependencies, but frequently are not everything that is listed in package.xml.