The etoolbox package is rich with list processing options. Here's one attempt.

\documentclass{article}
\usepackage{etoolbox}% http://ctan.org/pkg/etoolbox
\newcommand{\menuitem}{\texttt}% Menu item formatting
\newcommand{\menusep}{\ensuremath{\rightarrow}}% Menu separator
\newcommand{\menuend}{\relax}% Menu end
\makeatletter
\newcommand{\menulist}[1]{% \menulist{<menu list>}
\def\menu@sep{\def\menu@sep{\menusep}}% https://tex.stackexchange.com/a/89187/5764
\renewcommand*{\do}[1]{\menu@sep\menuitem{##1}}%
\menulistparser{#1}% Process list
\menuend%
}
\makeatother
\DeclareListParser{\menulistparser}{:}% List separator is ':'
\begin{document}
\menulist{File:New:Class}% 3 menu items
\menulist{Tools:Options:Advanced:Properties:Document}% 5 menu items
\menulist{}% 0 menu items/empty list
\menulist{Help}% 1 menu item
\renewcommand{\menusep}{~\rule{1ex}{1ex}~}\renewcommand{\menuend}{!}% Different separator and end
\menulist{Your:Menu:Sequence:Here}
\end{document}
\DeclareListParser{<cmd>}{<sep>} declares a list parser command <cmd> that processes a single argument as a list, with list item separator <sep>. The use of this definition is to accommodate an item:item:item:... style list. For regular CSV lists, you could also use \docsvlist which is predefined as \DeclareListParser{\docsvlist}{,} by etoolbox.
The main command \menulist{<menu list>} parses the list and formats each entry using \menuitem{..} but also adds a custom separator \menusep. The last menu item is followed by \menuend. The \menusep is applied with a "single delay" using one of the Cunning LaTeX tricks.