When one property is calculated from another
The C# property model allows external classes to inspect (or set) a given member as though it were a public 'field', and the implementation details are left to the property's accessor and mutator.  In your case, you want to expose TotalCost and hide the implementation details about how it is derived.  And your code reflects best practices.  

Following the comment from Clockwork-Muse, your implementation can be made more elegant by...

    public decimal TotalCost
    {
        get { return CostOfFood * NumberOfPeople; }
    }


This avoids the calculation penalty for setting either of the calculation ingredients and performs the calculation only when called upon to do so.  It's also a bit more readable and transparent.  In this particular case, there's no need for an asymmetric mutator, so it's been removed.