It's not just MPs; it's many other British people as well.
You're exactly right about it being a poppy. They are made by war veterans; people donate some money and get a poppy to wear. This is in honour of Remembrance Day, which is November 11th -- it was on this date that the First World War ended, and this is commemorated every year (although often on Remembrance Sunday, the Sunday closest to November 11th). It is when we remember those who have died in war.
Why the poppy? Because, after the war ended, poppies grew on the battlefields.
Poppy day is like a flag day. There are lots of them in the UK They are used to generate income for charities such as the lifeboat appeal. Lately other causes have developed their own symbols, such as the pink ribbon for breast cancer, the red ribbon for AIDS, huggy bear for children in need etc. So it is just a symbol that people can wear to let others know they have donated some money to a good cause, and I suppose, cynically to make sure they don't get asked to donate again!