Well this post explains a lot about what witnesses do. There is also more info about them in the FAQ.
As far as why witnesses do it, they are paid by the blockchain for each block they produce. Most witnesses are also doing what they do because they care a lot about the platform and want it to succeed.
A node is basically a computer/server that is running an instance of the blockchain.