I ran into the same issue with DNN 3.1.1 in development environment. In my case following was the cause:
I had changed the announcement, image module to suit my needs. Everything worked fine. Then just to understand DNN deploy & to reduce HDD requirement, I delted everything (PDB & DLL) in \bin folder. Did a rebuild.
After which while browsing to a sub-portal I came across the same folder. Then reading thoroughly the stack-traces & trying variuos combinations of controls I came deducted that the problem was with the above 2 changed controls Announcements & Image and surprisingly one more HTML/TEXT. So, the steps to correct it (worked for me are)
1) Reinstall components : http://localhost/dotnetnuke/install/install.aspx?mode=installresources
2) Rebuild individual modules by opening their individual solutions: C:\Inetpub\wwwroot\DotNetNuke\DesktopModules
Hope this helps. But, its high time some DNN team member confirm this & specify the exact solutions.