Here is another tikz solution, this time using a matrix of math nodes. There is some trickery with pic to put the underbrace in the right place, but the end result is:

Of course, you can add colour and styling to your heart's content!
Here's the code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{matrix,calc}
\newdimen\colL
\newdimen\colR
\tikzset{%
pics/underbrace/.style args={#1,#2,#3,#4}{%
% a pic for putting an underbrace under certain columns
% #1 = left column
% #2 = right column index
% #3 = index of the row with the underbrace
% #4 = label text
code = {
\pgfextractx\colL{\pgfpointanchor{M-#3-#1}{south west}} % x-coords of columns
\pgfextractx\colR{\pgfpointanchor{M-#3-#2}{south east}}
% draw the delimiter with the correct width
\node[rectangle, below delimiter={\}}, minimum width=\dimexpr\colR-\colL-1pt]
at ($ (M-#3-#1)!0.5!(M-#3-#2)+(0,-0.1) $){};
% the label
\node at ($ (M-#3-#1.south)!0.5!(M-#3-#2.south) $)[below=2mm]{$\scriptstyle #4$};
}
},
}
\begin{document}
\begin{center}
\begin{tikzpicture}
\matrix (M)[matrix of math nodes,
nodes={anchor=center,rectangle,
minimum width=9mm, minimum height=5mm,
inner sep=0mm
}
]{
p & q & p\lor{}q & p\land{}q \\
0 & 0 & 0 & 0 \\
0 & 1 & 1 & 0 \\
1 & 0 & 1 & 0 \\
1 & 1 & 1 & 1 \\
};
% vertical lines
\foreach \c in {1,...,4} {
\draw[thick](M-1-\c.north west)--(M-5-\c.south west);
}
% horizontal lines
\foreach \r in {1,5} {
\draw[thick](M-\r-1.south west)--(M-\r-4.south east);
}
% and, finally, the underbrace!
\pic{underbrace={3,4,5,\ell}};
\end{tikzpicture}
\end{center}
\end{document}
\documentclassand the appropriate packages so that those trying to help don't have to recreate it. – Peter Grill Jul 08 '12 at 02:15