I search the internet and get a nice redefinition of the block environment of beamer. It has the ability to set the width of the block, instead of always spanning the whole page.
\newenvironment<>{varblock}[2][0.95\textwidth]{
\begin{center}
\begin{minipage}{#1}
\setlength{\textwidth}{#1}
\begin{actionenv}#3
\def\insertblocktitle{#2}
\par
\usebeamertemplate{block begin}}
{\par
\usebeamertemplate{block end}
\end{actionenv}
\end{minipage}
\end{center}
}
Now I want to add padding to the text inside the block. Please notice only text not block title. I want to do this because I am using a plain theme, which does not have the color background to get them easily distinguishable.
Please help me, thanks.

minipagealready sets\textwidthto its width argument. Setting it again will give you funny results: an argument like0.95\textwidthwill result in final\textwidthof0.95*0.95\textwidth. – Martin Scharrer♦ May 23 '11 at 11:14