You could use a feature of the array package to insert a \raggedright command for flush left text, use >{command} before the column definition to insert one or several command(s):
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{array}
\begin{document}
\begin{tabular}{>{\raggedright\arraybackslash}p{.3\textwidth}p{.7\textwidth}}
\blindtext & \blindtext
\end{tabular}
\end{document}
You mentioned \flushleft - you could use it but it can insert undesired vertical space, such as
\begin{tabular}{>{\flushleft\arraybackslash}p{.3\textwidth}<{\endflushleft}p{.7\textwidth}}
If you need it often, consider defining a new column type using array features, as I did here:
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1}}
Some people define further useful types, such as
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
etc. So your tabular definition becomes simpler:
\begin{tabular}{P{.7\textwidth}P{.3\textwidth}}
In narrow columns, it may be good to allow hyphenation. This can be done using ragged2e. microtype could improve even more. So I would use:
\documentclass{article}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{array}
\usepackage{ragged2e}
\usepackage{microtype}
\newcolumntype{P}[1]{>{\RaggedRight\hspace{0pt}}p{#1}}
\begin{document}
\begin{tabular}{P{.7\textwidth}P{.3\textwidth}}
\blindtext & \blindtext \\
\end{tabular}
\end{document}
With ragged2e commands \arraybackslash is not needed. As the first word in a box would not be hyphenated, I additionally inserted zero horizontal space.
\def\myraggedright{\rightskip0mm plus10mm\relax}and use that instead of\raggedrightin the column definition. This way you have the text flushed left without the large space between words, but with hyphenation, so that the output looks much less ragged than with\raggedright. – Elmar Zander Jan 10 '12 at 13:44ragged2epackage and its\RaggedRightcommand that does something similar to yours. – egreg Jan 10 '12 at 14:01