The constuction て + いる has multiple meanings **depending on the context**. For the sake of simplicity, we can boil it down to three meanings: 

 1. Progressive state 
 2. Habitual state 
 3. Resulting state.

To exemplify, consider the sentence マイさんは飲んでいます. This has three possible meanings: 

 1. Mai-san is drinking (progessive state) 
 2. Mai-san drinks (habitual state) 
 3. Mai-san had some drinks and she is drunk now (resulting state). 

In order to infer the meaning, we must pay attention to time expressions and the like. For example, consider the sentence `私は今ピザを食べています`. This translates to `I'm eating pizza now`, not `I eat pizza regularly` or `I have eaten pizza and now I'm full` because of the adverb 今 (now). Similarly, `兄は毎朝一時間走っています` translates as `My brother jogs one hour every morning`. Why? Simply because of 毎朝 (every morning). If we instead said `兄は今朝一時間走っています` it would translate as `My brother was jogging for one hour this morning`. We cannot talk about habitual states if we refer to small time frames such as 'this morning' or 'now'. This is why context is important, when did it happen? 

With this in mind, the sentence you provided makes use of an adverb, namely, すでに, which basically means 'already'. This adverb does not provide any time frame and therefore we have to then focus on the clause, 食事の準備はできている. Now, we focus on the verb, not all verbs can express habitual states or progressive states (can be prolonged). できる is a verb which, in this case, expresses a change-of-state action and as such we can't use it to refer to progressive states. できる means, in this case, 'to be completed', 'to be made', 'to exist' and therefore the verb expresses a resulting state and not an ongoing action.