(At least with PDFLaTeX) \color{…}
results in a whatsit and is therefore horizontal material. Unfortunately switching back to the previous color at the end of a group also needs a whatsit. So in your case, there is an extra paragraph after the \end{align*}
caused by switching of the color. My suggestion is to avoid the group and explicitly switch to \normalcolor
at the beginning of the next paragraph:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\begin{document}
\color{blue}%
This is is a paragraph in blue. It contains the equation
\begin{align*}
a & = b + c - 2c\\
&= b - c.
\end{align*}
\normalcolor
This is a new paragraph in black.
\end{document}

An alternative would be to use LuaLaTeX and package luacolor
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{luacolor}
\begin{document}
{\color{blue}%
This is is a paragraph in blue. It contains the equation
\begin{align*}
a & = b + c - 2c\\
&= b - c.
\end{align*}}
This is a new paragraph in black.
\end{document}
With luacolor
colors are not longer whatsits (and therefore horizontal material) but node attributes. One more advantage of using LuaLaTeX.
One more alternative would be to add a \par
after the end of the align*
but before the end of the group, because the color code tries to avoid such issues in vertical mode:
\documentclass{article}
\usepackage{amsmath}
\usepackage{xcolor}
\begin{document}
{\color{blue}%
This is is a paragraph in blue. It contains the equation
\begin{align*}
a & = b + c - 2c\\
&= b - c.
\end{align*}\par}
This is a new paragraph in black.
\end{document}