I haven't yet found a way to get exactly the results I get in Programs and Features.
Get-WmiObject -Class Win32_Product doesn't list some of the programs that are listed in Programs and Features for example. I've read some installer put themself just into the Uninstall registry key and not into places where Win32_Product looks.
I suspect closer results would be possible by adding some filtering to the registry key approach by using some of the values under the Uninstall key. It still does not answer the big question, where does Programs and Features get the InstallDate from? It has that date for apps which I can't find any date in the registry keys for. I tried checking the Uninstaller file dates, they can also be different than what's shown in Programs and Features. (win7 64)