Density estimation is an example for unsupervised learning (you have inputs x_1,...,x_n and want to estimate the density p(x) at some point x). Regression (e.g. Gaussian Process regression) is an example for supervised learning: from (x_i, y_i) i=1...n input-output pairs you try to learn a function f such that f(x)=y (or to be more precise f(x)=E(y|x)).
kNN, Parzen-kernels, and kernels in RKHS are tools for these two problems. You can use them both for density estimation (unsupervised learning) and regression/classification (supervised learning).
It is a difficult question when to use what. It depends on what is important for you: computational complexity, accuracy, robustness, simplicity, easy implementation, etc.