I am a Canadian citizen and I am traveling to Iran (back home) this December. My Iranian passport expired on 17/05/2015. I was wondering if I can use it. I want to renew my passport in Iran because it is much cheaper there.
Nationals of Iran are allowed to enter with an expired passport.
This is noted in Timatic, the system which airlines use to verify passenger documents prior to boarding, so you should have no trouble boarding your flight. Present your Iranian passport when you check in to your flight. (You probably will need to present both passports here due to airport transits.)
Remember that Iran does not generally recognize dual citizenship, so you should not need to show your Canadian passport to Iranian officials. You do need to bring it with you, though, because you need to show it to the airline for your return flight to Canada. Read more on traveling with two citizenships.
I have done this 5 years ego. I have Australian citizenship and entered Iran with an expired Iranin passport. They don't care about your second passport. It doesn't matter if you have a valid Canadian passport or that I had an Australian passport. What matters is that you can enter Iran with an expired Iranian passport but you leave can't leave without getting a new one. So, as long as you renew while in Iran, you are sorted. That is eactly what I did 5 years ago.