Are both "I have read this book for months" and "I have been reading this book for months" correct?
If yes, how are meanings different?
Present perfect simple usually describes a recent completed event, but when used with "for" it could describe an event that is still going on. Present perfect continuous usually describes either a recent past activity (you have been reading for months, now you are done). Or a continuous event (you have been reading for months and didn't finish yet).
TL;DR: in this case it could imply the same thing depending on your context. Check these two pages for more details:
Also, this question is actually a duplicate, check here.