There are two cases:
For the tabular environment used outside the floating table environment you don't need anything special if you use tabular starting a paragraph, since in this case it will be indented.
For the tabular environment used inside the floating table environment, you can use an \hspace* before the tabular environment:
\documentclass{article}
\usepackage{booktabs}
\usepackage{lipsum}% just to generate filler text for the example
\begin{document}
\lipsum*[2]
\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}
\begin{table}[!ht]
\hspace*{15pt}\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}
\end{table}
\lipsum*[2]
\end{document}

The appropriate value to use as the argument of \hspace* is given by \parindent (default: 15.0pt in standard classes with 10pt font size).
To automate this process you can patch the tabular environment (using the etoolbox package, for example) to include the horizontal spacing if inside a floating environment, and use an auxiliary length to keep the document's value for \parindent:
\documentclass{article}
\usepackage{booktabs}
\usepackage{etoolbox}
\usepackage{lipsum}
% We save the value of `\parindent`
\AtBeginDocument{
\newlength\mylen
\setlength\mylen{\parindent}
}
\makeatletter
\AtBeginEnvironment{tabular}{\ifnum\@floatpenalty<0 \hspace*{\mylen}\fi}
\makeatother
\begin{document}
\lipsum*[2]
\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}
\begin{table}[!ht]
\begin{tabular}{@{}ll@{}}
\toprule
text & text \\
text & text \\
text & text \\
\bottomrule
\end{tabular}
\end{table}
\lipsum*[2]
\end{document}