This is one possible solution via tikz pics. Here a marco called mynode is defined with 6 arguments that is equipped with different x, y lengths and curvatures. The the last one is for text label with curve. If there is no text at all, remove the path decoration in the code.
The same idea can be applied to other shapes, say, triangle, but the code may need some modifications. What follows are the definitions of arguments
#1=color, #2=x length, #3=y height, #4=inward bend angle, #5=outward bend angle, #6=text

Code
\documentclass[border=10pt]{standalone}%{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{decorations.text}
\tikzset{%
pics/.cd,
mynode/.style args={#1#2#3#4#5#6}{
code={\node[inner sep=0pt,outer sep=0pt] at (0,0) (a) {};
\path[fill=#1]
(a) to[bend right=#4] ++(#2,0) -- ++(0,#3) to[bend left=#5] ++(-#2,0) -- cycle;
\path[postaction={decorate}, % remove this path if no text decoration.
decoration={raise=-15pt,
text along path, text={#6},
text align={left indent ={1cm}}}]
(a) to[bend right=#4] ++(#2,0);
}},
}
% #1=color, #2=x length, #3=y height, #4= inward bend angle, #5= outward bend angle, #6=text
\begin{document}
\begin{tikzpicture}
\pic {mynode={purple}{6cm}{-1cm}{20}{10}{This is my curved text.}};
\pic at (0,-2) {mynode={olive}{6cm}{-2cm}{30}{20}{This is my curved text.}};
\pic at (0,-5) {mynode={blue}{6cm}{-2cm}{40}{30}{This is my curved text.}};
\end{tikzpicture}
\end{document}
bend tooption for paths. As that option curves a path, I'd like to have the ability to curve a node. – Mason Sep 28 '14 at 17:01