This will depend somewhat on what your needs are. The stable version is the one that is the most thoroughly tested and debugged. With the exception of minor version upgrades, security updates, and bugfixes, it sees few changes and thus will likely not have the latest version of a particular program available. This is ideal for servers, large-scale deployments of workstations, and people who don't want to try the latest versions of software.
Testing will usually contain the latest stable release of a particular program. The testing branch is not necessarily unreliable, but it receives changes fairly regularly and package breakage can occur occasionally. Also, the testing branch is not audited for security by the Debian security team, so any fixes need to be made by the upstream source. Testing is suitable for most home desktop users with a fast internet connection.