The document class scrlttr2
doesn't use normal length adjusting there contents. Instead it uses pseudolengths. The most important length are described in scrguien or the German version scrguide. Both documentations have a great picture which are showing the pseudolengths. To explain my solution here the picture:

In your case you must change the height toaddrheight
because the complete return address and adress are putted in one vertical box with the specific height. The distance is done be \vfil
. So to reduce the distance between return address and adress you must reduce the pseudolength toaddrheight
. Related to the documentation this is done by:
\makeatletter
\setlength{\@tempskipa}{-2cm}%
\@addtoplength{toaddrheight}{\@tempskipa}
\makeatother
If I add this lines to your example I get the following result:

Here the example:
\documentclass[ngerman]{scrlttr2}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
%\usepackage{ngerman, ae}%veraltet
\usepackage[babel,german=quotes]{csquotes} % Deutsche Gänsefüßchen
\KOMAoptions{backaddress=true}
\setkomavar{fromname}{<Name back address>}
\setkomavar{fromaddress}{<street back address>\\ <town back address>}
\makeatletter
\setlength{\@tempskipa}{-2cm}%
\@addtoplength{toaddrheight}{\@tempskipa}
\makeatother
\begin{document}
\begin{letter}{name\\ street\\ town}
\opening{Hello}
some text
\end{letter}
\end{document}
Note The packages ngerman
and ae
are obsolete. Use babel
with the specific language ngerman
.
The difficult setting of such lengths are basing on the simple statement: Normally a user doesn't need to change any length.