I've used Blurb and a couple of other services. Blurb was the most consistent for color reproduction.
However, you need to understand some basics of color reproduction first. I'm not an expert, so others may want to chime in, but here is what I know.
Printing is a reflective process. That is, the reproduction is visible because light reflects off the page. This is unlike a computer screen, which is illuminated. It's similar to the difference between a slide and a print.
You will never get as brilliant of a reproduction from print as you do on a computer screen, simply because of this fact. Printing uses four inks Cyan, Magenta, Yellow and Black (K). Thus the term CMYK. You must make sure when you prepare your book for print that you convert the images to CMYK. Otherwise, you won't have any idea beforehand, how they will look in print and believe me, colors will shift and the dynamic range will be different. Subtleties that you love when looking at the screen may not show up when a book is printed.
I strongly recommend that you take some of the images that you intend to use in the book and have a small sample book with a minimum number of pages printed first. You can then see how your images will look in print, whether or not you like the reproduction offered by the publisher and get ideas on how you might want to adjust your images to improve the reproduction.
There are professional pre-print shops that do nothing but prepare images for reproduction, but if you are just doing a handful of books for your own use or sharing with family and friends, that isn't cost-effective.