We consider the nonlinear Schrodinger equation [ u_t = i Delta u + | u |^alpha u quad mbox{on ${mathbb R}^N $, $alpha>0$,} ] for $H^1$-subcritical or critical nonlinearities: $(N-2) alpha le 4$. Under the additional technical assumptions $alphageq 2$ (and thus $Nleq 4$), we construct $H^1$ solutions that blow up in finite time with explicit blow-up profiles and blow-up rates. In particular, blowup can occur at any given finite set of points of ${mathbb R}^N$. The construction involves explicit functions $U$, solutions of the ordinary differential equation $U_t=|U|^alpha U$. In the simplest case, $U(t,x)=(|x|^k-alpha t)^{-frac 1alpha}$ for $t<0$, $xin {mathbb R}^N$. For $k$ sufficiently large, $U$ satisfies $|Delta U|ll U_t$ close to the blow-up point $(t,x)=(0,0)$, so that it is a suitable approximate solution of the problem. To construct an actual solution $u$ close to $U$, we use energy estimates and a compactness argument.