Here's a solution for you. Each time the frame title is typeset, we write a line to the aux file. When read back in, this gives us a count of the number of times that frame is used. If this is greater than 1 then when we encounter that frame title we need to append the number of that frame, which is given by another count.
Caveats: we write the frame title only on the first slide of a frame. So if the first slide is skipped for some reason, strange things might happen. Similarly, it is possible to use overlays to change the title from one slide to another. This makes no check for that and might go horribly wrong if this is done.
Here's the code, it was an adaptation of the code in my answer to Re-using the title of the previous Beamer slide:
\documentclass{beamer}
%\url{https://tex.stackexchange.com/q/66274/86}
%\url{https://tex.stackexchange.com/q/65975/86}
\makeatletter
\def\beamer@checkframetitle{%
\begingroup
\edef\temp{%
\endgroup
\noexpand\frametitle
[\unexpanded\expandafter{\beamer@savedshortframetitle}]%
{\unexpanded\expandafter{\beamer@savedframetitle}}%
}
\temp
\@ifnextchar\bgroup\beamer@inlineframetitle{}}
\addtobeamertemplate{frametitle}{}{%
\only<1>{\immediate\write\@auxout{\string\beamer@countframes{max}{\beamer@frametitle}}}%
}
\long\def\beamer@@frametitle[#1]#2{%
\beamer@ifempty{#2}{}{%
\@ifundefined{beamer@framecount@max@#2}{%
\gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}%
}{%
\ifnum\csname beamer@framecount@max@#2\endcsname>1\relax
\beamer@countframes{cur}{#2}%
\gdef\insertframetitle{{#2\beamer@autobreakcount\csname beamer@framecount@cur@#2\endcsname\relax{}\space\usebeamertemplate*{frametitle continuation}}}%
\else
\gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space\usebeamertemplate*{frametitle continuation}\fi}}%
\fi}
\gdef\beamer@frametitle{#2}%
\gdef\beamer@shortframetitle{#1}%
\global\let\beamer@savedshortframetitle\beamer@shortframetitle
\global\let\beamer@savedframetitle\beamer@frametitle
}%
}
\global\let\beamer@savedshortframetitle\@empty
\global\let\beamer@savedframetitle\@empty
\def\beamer@countframes#1#2{%
\@ifundefined{beamer@framecount@#1@#2}{%
\expandafter\gdef\csname beamer@framecount@#1@#2\endcsname{1}%
}{%
\@tempcnta\csname beamer@framecount@#1@#2\endcsname\relax%
\advance\@tempcnta by 1\relax
\expandafter\xdef\csname beamer@framecount@#1@#2\endcsname{\the\@tempcnta}%
}%
}
\makeatother
\begin{document}
\begin{frame}{The Frame Title}
A frame with a title
\end{frame}
\begin{frame}
A frame without a title
\end{frame}
\begin{frame}
\frametitle{The Next Frame Title}
A frame with a title
\end{frame}
\begin{frame}
A second frame without a title
\end{frame}
\begin{frame}{The Third Frame Title}
But not the third frame
\end{frame}
\begin{frame}{The Fourth Frame Title}
Another title,\pause another frame.
\end{frame}
\end{document}
Result:

frametitle continuationfor slides that don't have overlays. – percusse Aug 05 '12 at 20:40[allowframebreaks]flag for the relevant frames. However, although all frames also have a vertical top alignment[t], the continued frame aligns the text (also when it's exactly the same as on the previous slide) a little higher. Is this to be expected? – Ailurus Aug 05 '12 at 22:51[allowframebreaks=1]. Note, just for testing this option I'm using\pagebreak. The continued frame is the one that is off, it starts a little higher than other (normal) frames. – Ailurus Aug 05 '12 at 22:59allowframebreaksis incompatible with overlays so this might not be what is wanted here. – Andrew Stacey Aug 10 '12 at 10:12(1)on the first occurrence? It would be a slightly more complicated implementation if you did. Also, does the repeated title always occur straight after the original, or can there be other slides in between? – Andrew Stacey Aug 16 '12 at 09:13(1)appear on the first occurrence. Slides with the same title are always consecutive in my case :) – Ailurus Aug 16 '12 at 12:10