C#/VB will always be the main languages, but F# is better at complex problems. C# is more general purpose while F# is better at IA, statistics, science (finding the cure of cancer, for example), etc. F# will never replace C#, but it will enable .NET to compete in more fields of computer science. As for data mining and processing large ammounts of data, you are better off developping directly within the database - like SQL Server or oracle.
As for F# being hard to learn, it's only because we got "corrupted" by the imperative way of thinking in most other languages. It's hard to unlearn something you do for 5 years! Also, in my exprience, ocaml and F# is a joy to use. The only complain I have for F#/Ocaml is that most of the time people overuse the type inference which makes the code unreadable. I'd rather declare variable types to make it easier to maintain.