Depends on what you'll be facing. If you are looking at a tech heavy level I'd take Garrus, Miranda, or Mordin.
On a more balanced level I'd take Miranda still (IMO she is the most balanced squadmate in the game, plus her training stacks on Shepard's bonuses) and Grunt since he can draw a lot of fire for you. --- "Vampire Penguins...Zombie Guinea Pigs...We're done for!" Some British Dude's Random Sleep Talk
At the start of the game i always took Miranda and Jacob as solider Shepard, later on i would take Jack or Tali instead of Miranda and would take Garrus or Morden instead of Jacob. My final team ended up being Miranda and Garrus dunno why, i just clicked with them the most with Miranda warping, Garrus overloading and me blasting.
I found the perfect anti-collector team to be Samara and Thane. Even on Insanity they cut through collectors like butter. Area Warp + Area Reave removes the barrier defences of a bunch of them at a time, after which it's a very simple question of finishing them off through either shooting them or using Samara and Thane's other biotics. I was able to pretty much breeze through the finale with that team.
Miranda is one of the game's best characters. Her passive helps Shepard, she has an armor-busting ability, and a shield-busting one, and she has a biotic disabler/damager attack. There's not much more you could ask for.
Unless you really hate her, she's a good party staple. You don't NEED her, but she makes party selection easy. You're safe bringing her and any other character you like and/or want around for whatever mission you're doing because you'll always have a way to break through enemy defenses.
Soldier would benefit greatly from Mordin and Miranda. Mordin will basically melt armor away. He has pretty good shields and health too, for an old Salarian Scientist. Miranda has two important skills, Overload and Warp, and her passive will basically benefit the entire group.
--- "Youth and skill are no match for age and treachery."