That is very nice to hear Hugh!
That largely depends on what you want to do with the function. From your description, it sound like you want it solve this one problem, that seems a bit limiting, but I'll provide the code below:
solveProblem[] :=
Module[{a = 6, b = 3, c = 2, d = 1, e = 3.2, f, x},
f[x_] := 2*a x^6 + b x^3 + c x^2 + d x + e x^3;
x /. NSolve[f[x] == 0, x, Reals]]
solveProblem[]
{-0.76146, 0.}
You will see that I used a Module. For the parameter values (a, b c..), With will work just fine. When using With, the values specified for a, b, c etc will be directly replaced in the expression, while Module creates local symbols that can be modified later in the expression. For the function f you will want to create local variable that does not interfere with other definitions of f. Also, you might have declared x to have a specific value somewhere else in the code. By creating a local symbol x in the Module, you avoid that conflict.
As I said, it depends largely on what you want to do with the function. If you want to change the parameters you could have them as arguments to your function:
solveProblem[a_, b_, c_, d_, e_] :=
Module[{f, x},
f[x_] := 2*a x^6 + b x^3 + c x^2 + d x + e x^3;
x /. NSolve[f[x] == 0, x, Reals]]
solveProblem[6, 3, 2, 1, 3.2]
{-0.76146, 0}
//Patrik