(NOTE: StackExchange's text entry program arbitrarily changes 갖 to 가ㅉ in some places. Please read all 가ㅉ below as 갖)
갖다 in 갖다 드릴까요? is a contraction 가져다가 (가지다 + -어 다가). 다가 is usually shortened to just 다, so 가져다가, 가져다, 갖다가, 갖다 are all correct forms.
-다가 indicates doing one thing first so you can do another thing, i.e. first part of two step action. -아/어서 also has this function, but the difference is that -아/어서 is used for more closely connected actions while -다가 usually implies a movement (especially when it's used with 가지다).
(가지다 is not used with -아/어 주다/드리다 directly without -다가, so 커피 가져 드릴까요? is wrong.
However, 가져가다 (take it to another place) and 가져오다 (bring to a place) are common words.)
- 커피에 설탕을 넣어서 드세요 (-어서, since adding sugar is a simple action involving no movement).
- 커피 갖다(가) 드릴까요? = Should I bring you some coffee? (involves movement).
가져다(가)/갖다(가) in this example means carrying something, one of the two major meanings of 가지다 (the other is taking something to keep it). In this sense, it usually has either -다(가) or -고 form to connect with another (helper) verb like 놓다, 두다, 주다, 오다, 가다, etc.
가져다가/갖다가 signifies bringing something to leave at some place or to hand it to someone (the latter part is more important), so 놓다, 두다, or 주다 follows it. In the case of 가지고/갖고 the two parts are about equal in importance and it is usually followed by 오다, 가다, 다니다, etc.
배송품을 문앞에 가져다/갖다(가) 놓으세요 = Please put the delivery in front of the door.
학교 가는 길에 아빠 도시락도 갖다(가) 드려라 = Take the lunch to your father on your way to school.
여행에 가지고/갖고 갈 물건들 = Things to bring for the trip.
옆집에서 떡을 해(서) 가지고/갖고 왔다 = The next door neighbor brought us rice cake they made.
EDIT (response to the OP's comment).
It is true that 가지다/갖다 is used with motion verbs and 주다/드리다 when used in the sense of "carrying". But it has its own preferred usage patterns. Your 가져와 드릴까요? is correct and might actually be heard but it is not a very frequently used phrasing. 가져다(가) 드릴까요? is much more common. It is more of a convention and usage pattern than for any logical reasons, but it dominates usage.
So the common patterns are:
- 가져다/갖다(가) 주다/드리다/놓다. (taking/bringing to do the more important second)
- 가지고/갖고 가다/오다. (taking/bring, with no more important second part)
- 가져가다/가져오다. (similar to 가지고 가다/오다, but as single words)
Other combinations are not used much. For example, 가져다 가다/오다? is never used (because 가져다가 already includes some sense of 오다/가다 implicitly). 갖고 와 드릴까요? 가져와 드릴까요?, etc. are not wrong but sound a little clunky and are not used as much as the above.
For the example of tea, by the way, the most commonly heard phrase is just 차 (좀) 드릴까요?. The 'bringing' part is obvious and not so important so people tend not to include 가져와/갖다 in this case. But in other kinds of bringing something, 갖다 주다/드리다 is a very common phrase.