There is now the (la)texdef script on CTAN which can be used to display (La)TeX definitions. The current version also support to display the package which defines the macro, however you need to state a list of packages to be loaded.
For itemize the usage would be
latexdef -f itemize
or, if only texdef was installed by your distro (latexdef is only a symlink to texdef which activates LaTeX mode):
texdef -t latex -f itemize
which prints:
\itemize is defined by (La)TeX.
\itemize:
macro:->\ifnum \@itemdepth >\thr@@ \@toodeep \else \advance \@itemdepth \@ne \edef \@itemitem {labelitem\romannumeral \the \@itemdepth }\expandafter \list \csname \@itemitem \endcsname {\def \makelabel ##1{\hss \llap {##1}}}\fi
To display the definition of any macro from any package use:
latexdef -p package macro
See latexdef --help for more information.
With v1.6 from 2012/05/02 you can also get the original source code for most macros using the -s/--source option:
$ latexdef -f itemize -s -E
% latex.ltx, line 4556:
\def\itemize{%
\ifnum \@itemdepth >\thr@@\@toodeep\else
\advance\@itemdepth\@ne
\edef\@itemitem{labelitem\romannumeral\the\@itemdepth}%
\expandafter
\list
\csname\@itemitem\endcsname
{\def\makelabel##1{\hss\llap{##1}}}%
\fi}
% latex.ltx, line 4565:
\let\enditemize =\endlist
% latex.ltx, line 4422:
\def\endlist{%
\global\advance\@listdepth\m@ne
\endtrivlist}
Here -E tells that itemize is an environment.