Giovanni's Room is told in the past tense. A few pages in we already know how the story ends, and the novel is pervaded by the knowledge that it is too late to do anything. David, even by recounting events, is punishing himself, retracing his role in Giovanni's tragedy. The entire narrative is entwined with his guilt, and throughout David is trying to understand exactly why he feels guilty and whether or not there is a way out.
David's guilt originates in the fact that he feels unworthy of the love of other people. Yet, because he cannot admit this to himself, his guilt is a feeling without a cause; it casts about for false ways to justify itself.
David feels guilty because he wants to feel responsible. His guilt becomes most intense when there is nothing that he can do, and it's a way of attempting to gain power in a situation where he feels helpless.