The siunitx integration has changed since the answer in question was written. Nowadays, you can use siunitx conveniently with circuitikz by loading circuitikz with the option siunitx and then using syntax of the form
R=1<\kilo\ohm>
and similarly for the others. These changes make the error message go away. Here's the fully corrected code:
\documentclass{article}
\usepackage[american,siunitx]{circuitikz}
\usetikzlibrary{positioning}
\begin{document}
\begin{circuitikz}[on grid]
\draw (0,1) node {Basic opamp};
% Define coordinates and nodes
\node (vi) {};
\node (a) [right=2 of vi] [label=below:$a$]{};
\node[ground](gnn) [below=1.0 of a,xshift=5mm] {};
\node[ground](gnp) [below=2.5 of vi] {};
\node[op amp](oa) [right=2 of a, yshift=-5mm]{};
\node (vo) [right=0.6 of oa.out]{};
\node[ground](gnd) [below=2 of vo] {};
% connect coordinates, inputs, outputs, and components, i.e. draw the circuit
\draw (gnp) to[V=1<\volt>] (vi);
\draw (vi) to[R=1<\kilo\ohm>] (oa.-);
\draw (oa.+) -| (gnn) node[ground]{};
\draw (oa.out) to[short] (vo);
\draw (vo) to[R=1<\kilo\ohm>] (gnd);
\end{circuitikz}
\end{document}

Update: Maybe my code style is less than ideal or a little bit esoteric, but here is how I personally would code your circuit:
\documentclass{standalone}
\usepackage[american,siunitx]{circuitikz}
\begin{document}
\begin{circuitikz} \draw
(0,0) node[op amp] (oa) {}
(oa.out) to[short] ++(0.6,0) coordinate (vo)
(oa.-) coordinate (a) node[below] {$a$}
to[R,l_=1<\kilo\ohm>] ++(-2,0) coordinate (vi)
++(0,-2.25) node[ground] (gnp) {}
to[V=1<\volt>] (vi)
(vo) to[R=1<\kilo\ohm>] (vo |- gnp)
node[ground] (gnd) {}
(oa.+) to[short] ++(-0.25,0) node[ground] (gnn) {}
;\end{circuitikz}
\end{document}
The output is slightly different because I changed some spacings to my taste:

circuitikzwith optionsiunitxand use that integration as designed:V=1<\volt>, for example. The syntax may have changed since that answer was posted, which could explain the error. – Paul Gessler Mar 24 '15 at 18:24