I think there is no single best answer to your question. I have expereince with R, Weka and Matlab, their functions on data mining overlap largely. Here is my point of view
Weka: Minimal programming skill required if you use GUI. Also Java is a powerful language for writing your own algorithms. Details (like input, output) can be handled easily. If you only need to do some tweaks or combination on the existing algorithm, and skillful in Java, then Weka is a good option.
Matlab: Easy to learn, very powerful and comprehensive, you can find nearly every high-level function you need and put them together to satisfy your needs. The speed is optimized if you use vectorized & matrix computation. As stated, it's syntax is very easy, but I found it's sometimes too painful to design a large system with its inadequate language features.Matlab is also very expensive.
R: Free and powerful. More powerful than Matlab if you are doing statistical modeling, but inferior in its general toolbox (E.x. I can't find a comprehensive genetic algorithm toolbox in R).
The bad news is, all these software are high-level and if your data is very large, you can't afford to import all the data into memory and do the computation. You must be thoughtful and do some divide-and-conquer. You often need to write some C extension to sophistically handle memory use.
You might also consider Python, there are libraries like sklearn, numpy, pandas, and scipy making python competent to do all kinds of scientific computing with its rich & powerful language features.