You have to identify the vertices uniquely, so I would call the second instance of 2 by the name 5 instead. But you can label them differently using this:
Clear[label];
label[5] = 2;
LayeredGraphPlot[{1 -> 2, 1 -> 3, 2 -> 3, 1 -> 4, 2 -> 4, 3 -> 5},
VertexLabeling -> True,
VertexRenderingFunction ->
Function[{p, l},
Text[Framed[If[ValueQ[label[l]], label[l], l],
Background -> RGBColor[1, 1, 0.8`],
FrameStyle -> RGBColor[0.94`, 0.85`, 0.36`]], p]]]

The VertexRenderingFunction option contains the same style as the default vertex labels, but instead of the vertex number supplied to it as the second argument l, it outputs the value of label[l]. The latter can be defined for any vertex number that you want to appear with a different label. If label[x] isn't defined, then ValueQ returns False and the label is displayed in the default form as x.
editlink above to see how you can do that yourself in the future. Regarding tags, please do not create new tags unless absolutely necessary. Try to find the best matching existing ones. – Szabolcs Jan 20 at 19:28