I'd go with the Marriott. I haven't stayed at the Sofitel but my friend did (albeit 10 or so years ago) and I wasn't impressed with the rooms. However both offer poor value for the $$$ which is why I stay in apartments.
I prefer the location of the Marriott as well. It's close to the metro station at Siqueira Campos and Ipanema / Leblon are only a R$10-15 cab ride away.