I saw this question rather late, and I can't quite hope to outdo the very fine answers already given, so please allow me to share my modest attempt at a three-dimensional implementation of the ghost trail:
trail[f_, {t_, head_, len_}, r_, opts___] :=
Block[{gc = First[Cases[ParametricPlot3D[f, {t, head - len, head},
ColorFunction -> (Directive[Opacity[#4], Glow[ColorData["SunsetColors", #4]]] &),
Evaluate[Apply[Sequence, FilterRules[{opts},
Options[ParametricPlot3D]]]]], _GraphicsComplex, Infinity]]},
Graphics3D[{CapForm["Round"], JoinForm["Round"],
MapAt[gc[[1, #]] &, First[Cases[gc[[2]],
Line[l_, rest___] :> Tube[l, Map[Scaled[r #] &,
Exp[Cases[VertexColors /. gc[[3]], Opacity[op_] :> op - 1, Infinity][[l]]]],
VertexColors -> (VertexColors /. gc[[3]])[[l]]], Infinity]],
1]}, Method -> {"TubePoints" -> 25},
Evaluate[Apply[Sequence, FilterRules[{opts}, Options[Graphics3D]]]],
Axes -> None, Background -> Black, Boxed -> False]]
I only wish to note three cute things about this particular implementation (that is, apart from the additional degree of freedom (via ViewPoint) provided by having three dimensions):
We can leverage the adaptive sampling capability of ParametricPlot3D[] so that the curve traced out by the ghost trail is sampled only where it matters. (If need be, trail[] can of course take the PlotPoints option.)
Tube[] supports a varying radius across its body. None of the two-dimensional primitives have an equivalent capability.
The Opacity[] directive in the ColorFunction option setting, in addition to its obvious purpose, allows the trapping of the (scaled!) parameter values used in the sampling of the curve. These values are then easily retrieved for the conversion into the list of radii needed by Tube[].
As with R.M, I shall be using a Lissajous curve (the three-dimensional equivalent in this case) to demonstrate trail[]:
lissajous3D[n_, d_, a_, b_, c_][t_] := {a Sin[2 Pi n t + d], b Sin[2 Pi t], c Cos[2 Pi t]};
trailFrames = Table[Blur[trail[lissajous3D[3/4, 0, 9, 8, 4][t], {t, h, 1/5}, 1/100,
ImageSize -> Medium, PlotRange -> {{-10, 10}, {-9, 9}, {-5, 5}}]],
{h, 0, 4 - 2/25, 2/25}];
Export["trail3D.gif", trailFrames, "DisplayDurations" -> .03]

0.03to avoid display problems in certain browsers. – Jens Apr 28 '12 at 03:07