Apart from the government funding angle, something which rarely gets discussed is this:
If you compensate scientists adequately, more people will become scientists. Research scientists are some of our hardest working professionals, and possess incredible expertise, yet they are not compensated proportionately. We like to think that we're a meritocracy where the "best and brightest" are rewarded financially, but the fact is that only those in the financial sector and business owners make any real money nowadays. Our entire culture is arrayed against the breeding of scientists: everything from the cost/benefit matrix, to the ever-increasing anti-intellectualist sentiment, to inadequate government funding (which is partly caused by, though not reducible to, the prevailing anti-intellectualism).
When you can only be assured of a great standard of living if you enter one or two fields, intelligent people aren't going to choose as arduous a course as becoming a research scientist. Some will, but not as many as would otherwise. A good portion of these intelligent people will instead seek to become "financial planners," "mutual fund managers," "stockbrokers" and similarly useless professionals. This results in a net "brain drain" from scientific fields.
The problem in this country is that we have a very narrow conception of "benefit." Financial planners are compensated because the benefit they provide is tangible: you grow a portfolio by 10%, and you in turn receive a percentage of that growth. The benefit provided by research scientists, however, is not as easily demonstrated, yet is no less real -- and certainly no less important.
This country needs more scientists, doctors, and engineers and fewer lawyers, financial planners, and MBAs. Period. The only people who will disagree with this are...lawyers, financial planners, and MBAs. Shocking, I know.