Package management differs according to distro. Package management is one of the few things that separates one distro from another, really. Skip to the bottom paragraph if you want, it's the only important one.

Building software yourself is not simple or easy. Some programs don't use the configure + make toolchain. Some are just a Python or Perl script and don't need to be compiled at all. Some come with a custom script that does some nonstandard crap via Bash. Some use the configure + make toolchain but require additional configuration before it will work, like setting a --prefix or pointing it toward a library it can't find on its own. Some use configure + make but don't have an "install" rule in the Makefile, so you need to skip the "make install" step and copy the files manually to somewhere. Some programs are pre-compiled and the installer script just copies the files to somewhere. There are plenty of other options.

When running configure and make, it's generally

./configure
make
sudo make install

You don't want to run the first "make" as root. All the first make should do is compile the source and leave a binary / binaries ("executable") in the build directories somewhere. All this should presumably be done as a non-root user; there's no need to do it otherwise. You can actually even run the program at that point, directly from the build directories, without actually "installing it". So if a single user needs to install a program but doesn't want everyone else to use it (or doesn't have permissions for everyone else to use it) you're still free to do so.

"make install" moves things around to standard places (generally folders your $PATH, /usr/bin or suchlike) so that you can run the programs more easily and so things are more organized; the only reason it requires root permissions is because you're installing the thing system-wide in system directories. This also allows all users to run the program (generally). But note also that you can configure "make install" to install to ANYWHERE, generally, including somewhere in your home dir, if you feel obliged.

Note also that some distros don't use "sudo", or don't come with a sudo package installed by default. In which case you would "su -" or log in as root in some other way in order to run "make install".

You do have to worry about dependencies; a program that fails the build process will often tell you exactly what it's missing, but won't tell you where to get it or how to build or install it. This is extremely painful, as most programs (especially GUI programs) have many dependencies, which themselves may also have dependencies. Other complications include changes in the compiler itself. If someone writes a program and tests it with GCC 4.0 and it works, but you have GCC 3.4, you may not be able to compile the program merely because it was written for a different compiler version. The same is true if you have the wrong version of certain system libraries. You're then stuck either upgrading your system libraries, or attempting to install multiple versions of system libraries in parallel. (Note, Gentoo handles this quite well. Had to plug Gentoo here at least once, it's the law.)

Of course it is helpful to learn all this, but it's not necessary for someone to know any of this to use Linux, nor should it be, really. There are distros that force you to learn this (Gentoo does) but Gentoo is not for everyone, and other distros are more user-friendly.

The important thing to note here is that building things by hand is not simple. Package managers like RPM installers and Gentoo's Portage and Ubuntu's apt are designed so that some geek sits around and works out all this crap himself, then fixes up in a nice neat package to give you so you can skip the configure/build process as much as possible and just install the thing. In most distros you should never ever see any of this crap, unless you're installing something crazy or non-standard or extremely beta.