D.D.
MyFitnessPal
It's both online and smartphone.
You can go online and put in your own recipes and it will calculate everything there and save it to your account. Then on your phone you can tell it to put in 1 serving of your recipe.
It also has tons of generic foods, fresh foods, etc (eg, nutritional content of 1 egg, or 1 apple).