Here is the process I used to quickly build (OK, but it was faster than usual) QGIS HEAD on Feisty Fawn. What's QGIS HEAD? It's the current development version that includes the tasty Python bindings that allow you to write both QGIS plugins and stand-alone mapping applications.
With apt-get or synaptic, install the following:
bison fftw3 fftw3-dev flex g++ libgeos-c1 libgeos-dev libgeos2c2a libpq-dev libpq5 libqt4-core libqt4-dev libqt4-gui libqt4-qt3support libqt4-sql libreadline5-dev libsqlite3-dev libtiff4-dev proj pyqt4-dev-tools python-qt4 python-qt4-dev python-sip4 python-sip4-dev qt4-designer qt4-dev-tools qt4-doc qt4-qtconfig sip4 sqlite3 tcl8.4-dev tk8.4 tk8.4-dev x-dev
Some of these may get installed as part of other packages. Also you'll likely see a bunch of dependent packages pulled in by the ones above.
Get and build GDAL 1.4.1 from source (http://www.gdal.org/)
./configure '--without-python' '--with-sqlite=/usr' make make install
Download GRASS 6.2.1 and build (You can use the 6.3.x snapshots as well - http://grass.itc.it)
./configure --with-tcltk-includes=/usr/include/tcl8.4 \ --with-postgres-includes=/usr/include/postgresql --with-readline --with-sqlite make make install
Rebuild GDAL 1.4.1 with GRASS support
./configure --without-python --with-sqlite=/usr --with-grass=/usr/local/grass-6.2.1 make clean make make install
Get the current QGIS unstable from the Subversion repository. You'll need subversion to fetch the code. If you don't have it, install it using:
sudo apt-get install subversion
svn co https://svn.qgis.org/repos/qgis/trunk/qgis qgis_unstable
Build QGIS using the instructions in: http://wiki.qgis.org/qgiswiki/BuildingwithCMake I suggest using a out of source build outlined on the wiki. If you have problems with cmake finding your GRASS or other components, use ccmake to edit the paths, as well as the install prefix if you like:
cd qgis_unstable mkdir build cd build ccmake ..
Hit 'c' a couple of times and then 'g' to generate. You are then ready to:
make make install
Using the Feisty packages makes it a pretty quick process. You only need to compile GDAL, GRASS and QGIS. If you don't want to use GRASS, you could get by with GDAL 1.3.2 from apt.
You can also use this process to build the 0.8.0 release or the 0.8.1 release candidate in subversion.