Remove numbering from Proofs

Here's a possibility:

\documentclass[12pt]{article}  
\usepackage{hyperref}  
\usepackage{cleveref}
\usepackage{ntheorem}
\newtheorem{thm}{Theorem}
\newtheorem{lemma}[thm]{Lemma}
\newtheorem{corollary}{Corollary}
\newtheorem{remark}{Remark}
\newtheorem{proposition}{Proposition}
\newtheorem{example}{Example}
\newtheorem{definition}{Definition} 
\theoremstyle{nonumberplain}
\newtheorem{proof}{Proof}
\begin{document}  

\begin{lemma}   
  My lemma  
\end{lemma}  

\begin{proof}
  My Proof
\end{proof}

\end{document}

The amsthm package already define proof environment, so here I call the new proof evironment Proof, and the * is for a no-number theorem evironment. If you want more custom, you can read texdoc amsthm, also texdoc thmtools.

\documentclass[12pt]{article}  
 \usepackage{amsmath}  
 \usepackage{amssymb}   
 \usepackage{amsthm} % when I use this, I remove the hyperref and cleveref packages
 %\newtheorem{theorem}{Theorem}
 %\newtheorem{lemma}{Lemma}
 %\newtheorem{corollary}{Corollary}
 %\newtheorem{remark}{Remark} 
 \usepackage{hyperref}  
 \usepackage{cleveref}
 \newtheorem{thm}{Theorem}
 \newtheorem{lemma}[thm]{Lemma}
 \newtheorem{corollary}{Corollary}
 \newtheorem{remark}{Remark}
 \newtheorem{proposition}{Proposition}
 \newtheorem{example}{Example}
 \newtheorem*{Proof}{Proof}
 \newtheorem{definition}{Definition} 

 \begin{document}  

  \begin{lemma}   
    My lemma  
    \end{lemma}  

 \begin{Proof}
   My Proof
 \end{Proof}

 \end{document}