I think that it's better to redefine the environment. In this way you can define a new command for supervisor and don't use author for both you and the supervisor. Also you have more control over the page.
You could create commands like \title, \author, etc... with:
\makeatletter
\newcommand{\@supervisor}{}
\newcommand{\supervisor}[1]{\renewcommand{\@supervisor}{#1}}
\makeatother
You can set the supervisor with \supervisor{Dr. John Smith} and you can use its value with \@supervisor just like \title, \author and similar.
The original definition of the title page is through the titlepage environment.
\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\null\vfil
\vskip 60\p@
\begin{center}%
{\LARGE \@title \par}%
\vskip 3em%
{\large
\lineskip .75em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1.5em%
{\large \@date \par}% % Set date in \large size.
\end{center}\par
\@thanks
\vfil\null
\end{titlepage}%
You could modify it adding lines and supervisor. In the following the complete solution with the result.
\documentclass{article}
\makeatletter
\newcommand{\@supervisor}{}
\newcommand{\supervisor}[1]{\renewcommand{\@supervisor}{#1}}
\makeatother
\title{MSc Thesis}
\author{John Smith}
\supervisor{Dr. John Smith}
\begin{document}
\makeatletter
\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\null\vfil
\vskip 60\p@
\begin{center}%
\hrule height .5mm
\vspace{25pt}
{\LARGE \@title \par}%
\vspace{25pt}
\hrule height .5mm
\vskip 3em%
{\large
\lineskip .75em%
\begin{tabular}[t]{c}%
{\Large\@author} \\
{\normalsize\@supervisor}
\end{tabular}\par}%
\vskip 1.5em%
{\large \@date \par}% % Set date in \large size.
\end{center}\par
\@thanks
\vfil\null
\end{titlepage}%
\makeatother
\end{document}

Of course another valid solution is to redefine \maketitle command. However in my humble opinion there is no need for that if you're not going to create a class.