I agree with Stefan, TikZ would be the best way to go:
\documentclass[parskip]{scrartcl}
\usepackage[margin=15mm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows,scopes}
\usepackage{ifthen}
\begin{document}
\begin{tikzpicture}[x={(2cm,-0.5cm)},y={(0cm,-1cm)}]
\foreach \x in {-1,...,3}
{ \foreach \y in {0,...,3}
{ \ifthenelse{\x=-1}{\xdef\more{=0}}{\ifthenelse{\x=0}{\xdef\more{=S_\y}}{\xdef\more{}}}
\node[right] at (\x,\y) {$\epsilon_{\x}^{(\y)}\more$};
\ifthenelse{\x=3}{\draw[dotted] (\x+0.5,\y) -- (\x+1,\y);}{}
\ifthenelse{\y=3}{\draw[dotted] (\x+0.2,\y+0.5) -- (\x+0.2,6-\x/2);}{}
}
}
\end{tikzpicture}
\begin{tikzpicture}[x={(2cm,-1cm)},y={(0cm,-2cm)}]
\node (l) at (0,0) {$\epsilon^{n+1}_{k-1}$};
\node (b) at (2,0) {$\epsilon^{n+1}_{k-1}$};
\node (t) at (2,-2) {$\epsilon^{n+1}_{k-1}$};
\node (r) at (4,-2) {$\epsilon^{n+1}_{k-1}$};
\draw[-latex] (l.20) -- (t.200);
\draw[-latex] (l.340) -- (b.160);
\draw[-latex] (t.340) -- (r.160);
\draw[-latex] (b.20) -- (r.200);
\end{tikzpicture}
\end{document}

amscdproduces only vertical or horizontal arrows, not diagonal ones, so isn't suitable for this. – barbara beeton Feb 12 '12 at 21:34