I did it finding the expressions for the three roots using Solve, and then using the obvious relations (Greater and Unequal) to get Reduce to satisfy the conditions on them:
With[{roots =
x /. Solve[-m^3 + 2*m^2*x + (-2*m - 1)*x^2 + m + x^3 == 0, x]},
Reduce[Join[# > 0 & /@ roots, #1 != #2 & @@@ Subsets[roots, {2}]]]]
Output is 1 < m < 4/3, which appears to be correct.
EDIT in response to comment: The most straightforward way I could think of to find the condition where you have one negative root and two positive roots is to construct a Boolean expression for Reduce that expresses that condition. We still have the condition that the roots are distinct, but we need to consider a disjunction of three different sets of inequalities, one for each root that could be negative while the others remain positive.
This can be done as follows:
With[{roots =
x /. Solve[-m^3 + 2*m^2*x + (-2*m - 1)*x^2 + m + x^3 == 0, x]},
With[{
distinct = Unequal @@ Subsets[roots, 2],
inequalities =
Or @@ (And[#1 < 0, 0 < #2, 0 < #3] & @@@
NestList[RotateLeft, roots, 2])},
Reduce[inequalities && distinct, m]]]
I used With here just to name the pieces to try to make it a little clearer what's going on because all the different use of Apply get a little confusing.
Output is 0 < m < 1, which is again as it should be.
f[x]? – Andrew Jaffe Jul 18 '13 at 13:44