Beercalculus at Hopville puts the OP OG at 1.039. Sounds like your "limited experience" has treated you well.
Beersmith puts the OG at 1.046
Promash puts the OG at 1.047
One problem with Beer calculus is that people can add ingredients, and define the characteristics of those ingredients. If they do this right, it wouldn't be a problem. If they do it wrong, it can be a big problem.
For the fermentables Beer calculus lists the yield of LME as 34 PPG. Beersmith lists it at 36 PPG, and Promash lists it at 37 PPG
They all list sugar with a yield of 46 ppg, which is correct for sucrose, but I believe the yield for dextrose should be 44 ppg.
With the DME addition I found in Beer calculus, they listed the yield of DME as 34 ppg. This is definitely wrong. Beersmith lists the yield for DME as 44 ppg, and Promash 46 ppg.
With the values I got from Beer calculus, it gave an estimated OG of 1.043 (because of the low yields for the LME and DME).
I suspect that the OP got a low apparent OG either because the wort was not adequately mixed after topping off, or he had more than 5g, or he took the gravity at a very high temperature. If his weights and volumes were correct and he didn't leave a bunch of wort in the kettle, then his true OG would be about 1.046 - 1.047.
-a.