I have had excellent results using a "Spin Clean" type cleaner that I bought off Amazon. I have also used a painters brush with the usual DIY cleaning solution (distilled water, alcohol, a drop of Dawn detergent) followed by a distilled water rinse, for times when I have picked up 1 or 2 records at a yard sale, etc. and I don't want the hassle of setting up the record cleaner for just a couple of records..
Key for me is the "aftercare" once the record has been cleaned. I use rice paper inner sleeves, a clear vinyl outer sleeve to cover the record jacket, and then I have a carbon fiber brush that I give the lp a light dusting with before playing. I also have a separate carbon fiber brush for the stylus, which gets a light brushing every time I use my turntable (and of course, dust cover down whenever not in use...)
I have found that my lp's stay 'clean' almost indefinitely using these methods. I have played lp's that were cleaned 2 - 3 years ago (and not played since) and they still look and sound as good as when they were first cleaned...
I'm sure an ultrasonic cleaner would be even better - but I balked at spending several hundred dollars for record cleaning.