Not that they always do it well, but they allow people who aren't as familiar with administration as you or I (and sometimes us too) to use programs without the dependency snarl that arises whenever you can't find it in your repositories or you don't want to use the one in there.
I had a program I wanted to use. It needed a recent LTS version of OpenSSL. I wanted to use it on an OpenSUSE system that didn't provide that version of OpenSSL (they were on an older stable version). The program concerned wasn't in the repositories at all because it was a new project. Incidentally, if you downloaded the binary the author made, it wouldn't run either because it expected a later version of glibc; the author had compiled for an older version to have compatibility with an older version of Debian, but not so old that it worked with the version the user was on. To get this to run, I had to compile several things from source, including OpenSSL, then modify the makefiles to point to my portable versions of the libraries, then tell the admin who wanted to run it to make sure not to jumble these libraries with any of the other copies around the system. I should point out that the OpenSUSE version being used was still supported at the time and I didn't have the authority to make anyone update distros. This is what can cause problems and why a system for packaging dependencies when the repositories don't have them has been needed. If you don't need it, feel free not to use it, but people wrote it because it was solving a problem.