My current LOR is "good but not great". Should I switch to a LOR whose doesn't know me well, but certainly thinks I'm a top student? I'm applying for graduate school in a hard science this year, and most things on my application are pretty good so far. Two of my letters should be strong, but regarding the third one, the professor told me in the interest of full disclosure, that his letter will be a positive one, but certainly not the best he's written. This particular researcher is well known in his subfield, which isn't the field I'm applying to, but it's not very far away either. I've taken many of his graduate courses, and also did an independent reading course with him. The graduate courses went pretty well, but the reading course didn't unfortunately, (mostly due to a difference in style) and as a result of all this interaction, he knows me well, and he thinks I'm a good but not great student. Now I'm really hoping I can get into at least one of the better schools on my list, and it's insanely competitive, particularly in my subfield. 

Another option of mine is asking another professor who doesn't know me that well and is in mathematics instead than the hard science I'm applying to, but he certainly thinks I'm a top student, since he was responsible for many of the math awards I got and I did really well in the one class that I did take with him. 

Q: Would having two great and one good letter hurt me at the top places? My impression is that students who get admitted to top places have their professors say that they're the best student they've seen in many years, and not having such a letter could result in rejection. Which recommendation should I go for? Is it advisable that I even do both and send in four letters?
I think professor "you're good but not great" is doing you a great service by letting you know in advance that his letter will not be one that you want in your application.  If you are applying to an insanely competitive program, then indeed such a letter would jeopardize your application.  I've done graduate admissions at the 50th best math department in the US, and we can do better than "good but not great".

A letter from someone in an adjacent field is definitely not as good as a letter from someone in your field, but getting a letter from someone who was responsible for "many of the awards" you got is certainly strong.  The sentiment that you have award-winning mathematical skills should be a positive one on an application to graduate school in the sciences.

I would definitely switch the letters.  Also remember that the first professor really helped you out.  It is not the sort of help that is worth an effusive thank-you on your part, but it is worth keeping in mind and perhaps remembering to do for someone else someday.