I personally consider 'The Silmarillion' to be canon, whilst at the same time incorporating into my point of view all the later writings that fit the general history without drastically altering the storyline.
For example we could accept Orodreph as being Felagund's nephew rather than brother, because it in no way really interrupts the basic flow of events or story. However we can not accept that Feanor burnt his youngest son along with the ships, and even less that he burnt both of them (as suggested in HoME-11) because this would drastically alter the history, and does not fit in with the story.
Another example could be that we can accept that Turgon saved Idril from drowning during the crossing; but we can not accept that Celeborn came from Valinor with Galadriel (Well I refuse to accept it anyway

)