I've been wondering, is there a way to tell dpkg or apt-get that when I want to install a package also install all the dependencies it requires? I installed a package using dpkg but it complained about some dependency issues so I had to manually search one by one, is there a better way to do this?

apt-get or aptitude will install all the dependencies of a package. According to apt-get man page

All packages required by the
package(s) specified for installation
will also be retrieved and installed.

Even if you want to install a package from source you can install its build dependencies using apt-get. Use apt-get build-dep for that purpose. Again from apt-get man page:

build-dep causes apt-get to
install/remove packages in an attempt
to satisfy the build dependencies for
a source package.

For example if you want to compile gcc you will need all the build dependencies for successfully compiling gcc. So you use sudo apt-get build-dep gcc. This will install all the packages required to build gcc from source.