I've now tried this
f[m_?NumberQ] :=
Catch[Do[a =
2^(m(1 - c)) -
2.718/((m^.5)23.14c^(cm + .5) (1 - c)^((1 - c)*m + .5));
If[a <= 0, Throw[m/(m (1 - c) + 1)]], {c, 0.006, 1, 0.001}]]
however, FindMinimum still doesn't work and tells me I'm making invalid comparisons.