You can load the ntheorem package with the thmmarks and amsmath options. Normally it can manage any display math environment, including the amsmath ones. Of course, it is incompatible with loading the amsthm package, but some compatibility is ensured by the amsthm option, which defines a proof environment and plain, definition and remark theorem styles similar to the amsthm ones.
The \qed command ensures an automatic placement of the qed symbol, which can be redefined through the \qedsymbol command. In case of a problem within a single theoremlike environment, you can inactivate the automatic placement with the \NoEndMark command and proceed to a manual placement. See § 2.6 of the doc for details.
By the way, you shouldn't use $$ ... $$ for displayed equations: it is pure TeX, and the vertical spacing can be incorrect. You should use \[ ... \] instead.
Here is an example with an align* environment, that demonstrates that no manual placement is necessary:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{mathtools}
\usepackage[amsthm, thmmarks,amsmath]{ntheorem}
\begin{document}
\begin{proof}
This proof ends with two displayed equations:
\begin{align*}
1 + 1 & = 2\\
2+2 & =4.
\end{align*}
\end{proof}
\begin{proof}
This proof ends normally,
\end{proof}
\end{document}

\qedhereofamsthm; this requires using\[...\]rather than$$...$$(which shouldn't be used in LaTeX anyway). – egreg Dec 14 '13 at 15:02proofenvironments, or more generally? – Mico Dec 14 '13 at 16:12