Here is my ViewPort rendering (which is good):
But my Cycles Rendering looks like this:
Any idea why this is happening? I'm new to blender so any help would be greatly appreciated.
This looks like an accidental Layer Material override. Check if your active render layer has a material set in the data field indicated in red in this screenshot:
Such an override replaces every single material on the RenderLayer with the one selected. It's useful for adding custom AO passes, Clay Renders, or diagnostic renders.
Click the small X icon next to the material to remove the override, and you should be back to normal.
By the way: By default the viewport renderer does not take Render Layer modifications into account. That's why you get a different result between the two. You need to explicitly tell Blender to do this using this Toggle Button while a viewport render is running: