\DeclareMathOperator is designed to create commands that should typeset operator names such as sin and lim. Some of these are already defined in base TeX or LaTeX so one writes 2\sin\theta
instead of 2sin\theta

giving correct spacing and font. If you need an operator of this type that is not predefined, then you create it with \DeclareMathOperator, e.g. the space of endomorphisms of a vector space is written \End V

but you need to make the definition \DeclareMathOperator{\End}{End} first: a minimal working example is
\documentclass{article}
\usepackage{amsopn}
\DeclareMathOperator{\End}{End}
\begin{document}
\( \End V \)
\end{document}
\newcommand is much more general and can be used to define direct short cuts or more complicated macros. So for example if you find youself writing \left.\frac d{dt}\right|_{t=0} many times in your document you can package this up as a single command \dtzero via \newcommand{\dtzero}{\left.\frac d{dt}\right|_{t=0}} and just type \dtzero each time instead.
I would usually recommend reserving \DeclareMathOperator for the use described above and using \newcommand in most other situations. To get the effect of \DeclareMathOperator in a one-off situation, or inside a \newcommand, you use \operatorname; so you can write \operatorname{End}V for the above example.
texdoc amsmathand see page 13f. – Marco Daniel Aug 17 '12 at 8:54\DeclareMathOperatoris a very special case of\newcommand, so the question as it stands is too generic to receive an answer. – egreg Aug 17 '12 at 9:09\DeclareMathOperatorsays what it's going to do and does it, so makes it easier for you to remember 6months later what it was meant for. Also, if you want a consistent look you're going to effectively reimplement\DeclareMathOperator(this\newcommandshould produce the same effect as that\newcommandbut not the other\newcommandso we'd better have a "helper" macro for this and that but not the other) so why not take advantage of the work others have already done? – Andrew Stacey Aug 17 '12 at 9:24