It is enormously faster to use 

 x = f /. {M -> 2, λ -> 100} // Simplify;
 FindRoot[Im[x], {ω, 5}]

Then, given the space of roots for `Im[x]`

 DeleteCases[Union[Table[N[Round[ω /. FindRoot[Im[x], {ω, i}], 10^-8]], {i, 50}]],
 z_ /; z < 0, Infinity]

finds all positive roots less than `50`, and a few more

 (* {1.42102, 4.90807, 7.62768, 11.2423, 14.0252, 17.1884, 20.6867, 23.5686, 26.4905, 
 29.8494, 33.2229, 36.4292, 39.4662, 42.4597, 45.5127, 48.6259, 61.2229, 252.896} *)