Hi,
this function might be useful:
nlm[d_, data_] := NonlinearModelFit[data, Evaluate[Sum[Subscript[a, i] x^i, {i, 0, d}]], Evaluate[Table[Subscript[a, i], {i, 0, d}]], x]
d is the dimension of the polynomial and data is the list of points.
Here's an interactive interface:
M = 10; data = RandomReal[1, M];Manipulate[
Show[ListPlot[data, PlotStyle -> Red], Plot[Evaluate[Normal[NonlinearModelFit[data, Evaluate[Sum[Subscript[a, i] x^i, {i, 0, d}]],
Evaluate[Table[Subscript[a, i], {i, 0, d}]], x]]], {x, 0, M + 1}, PlotRange -> All ]], {d, 0, 10}]
Some of the Evaluate functions are redundant. The thing looks like this:

Cheers,
Marco