The appropriate spacing in an array environment requires you to remove the default array column separation (\arraycolsep) and insert empty groups where needed so the binary relations/operators can space themselves. This is easily achieved via array's \newcolumntype.
Below the new column type C inserts {} to the left (using >) and right (using <) of its contents:

\documentclass{article}
\usepackage{amsmath,array}% http://ctan.org/pkg/{amsmath,array}
\newcolumntype{C}{>{{}}c<{{}}}
\begin{document}
\[
\begin{array}{c@{}C@{}c}
a & = & \text{some equation} \\
b & = & \text{some other equation} \\
& \vdots \\
c & = & \text{last equation}
\end{array}
\]
\begin{align*}
a &= \text{some equation} \\
b &= \text{some other equation} \\
& \vdots \\
c &= \text{last equation}
\end{align*}
\end{document}
While you're still left with padding on the array ends, it doesn't make a difference in terms of the alignment, as you can see in comparison to using align.
There are advantages to using array above align, but there are also drawbacks. One advantage is an easy alignment change to suit your needs compared to the fixed right-left alignment of align. However, align provides flexibility when you have multiple alignment points, together with interspersed text-capability, page-breakability, vertical spread-out-i-ness (somewhat achievable via \renewcommand{\arraystretch}{1.2} when using array), ... So, all-in-all, align works better.
stackenginepackage and its many capabilities would probably appreciate getting a couple of sentences that explain what your setup is all about. – Mico Oct 20 '13 at 06:07