Out of the bat I'm going to say I will not be discussing James Sirius Potter, as there is hardly any cause for complain in his name. Rather, I will be talking about the real source of outrage in the community - Albus Severus Potter, named after Albus Dumbledore and Severus Snape - and a little bit about Lily Luna Potter.
So... why did Harry name his child over his worst nemesis and the mentor who groomed him for death? Well, whenever I think of Harry's children, I get his feeling like he named them after things he learned and valued throughout the series.
#1 The Bravery of Not Fearing DeathWhen Harry says he named his child after the bravest men he ever knew - what he is actually talking about is the bravery of not fearing death... Which is one of the biggest themes in the Harry Potter universe.
It's the bravery Voldemort lacks, the one that motivates his actions throughout the series (wanting to be immortal). It's the bravery that saved Harry's life - Lily (and James) sacrifice themselves so Harry could live. It's the bravery that saved the wizarding world - if Harry wasn't brave enough to "die", the unplanned Horcrux wouldn't have been destroyed and Voldy would have remained un-kill-able.
From the very first novel in the series, J.K has put a very strong emphasis on the importance of not fearing "the great next adventure", which is echoed in this final sacrifice Harry makes. (Don't forget - J.K is really big on closing a circle. The entire seventh novel mirrors many moments of the first one).
To an extent, all of Harry's children are named after people who held this kind of bravery (in abundance). Lily and James, obviously. Sirius, who looked death in the eye and smiled hello. Luna, who was kind of the bravest of them all... and then Dumbledore and Snape. The two people that Harry watched die (and could clearly remember it). The two who played the game until the very last moment of their life. The two people who showed Harry he shouldn't fear death, and that he can face it, for the right reasons.
So, death and bravery is a pretty big theme here.
#2 The Duality of People - Being Human Means Being Gray
But what else separates these two from other worthy names? Well... both turned out to be not quite what we thought they were. Both were revealed to be a lot grayer than we originally expected. Both Snape and Dumbledore proved there is more beneath the surface, on both sides of the coin.
For almost the entire series, Snape was the villain of the story. As bad as Voldemort is, I'm fairly certain most of us hated Snape even more than Voldemort. Voldy is this arch nemesis, this big bad wolf in the background, but we actually see very little of him throughout the series. The more prominent villain is Snape, with his bullying, his sneers, his grumpy-bitter attitude, his taunts and insults and the feet he keeps tripping our heroes with throughout their academic lives.
So Harry's shock was even bigger than ours when he found out Snape has an almost infinite, unwavering, immortal capability of love. Sure, it's almost obsessive. And yes, Snape could've chosen differently and maybe even gotten the girl. But can anyone deny that he loved Lily? That despite all his bitterness and anger and hatred he protected Harry from the onset? You can say a lot of things about Snape (and none of them would be untrue), but you can't deny this. He died to protect what Lily loved.
Snape proved that not every bully is bad all the way, and that love can do a lot to redeem someone.
In fact, in the collective memory of the fandom, a lot of people (me included) consider the line "After all the time? Always" to be one of the most memorable lines in the series, and one of the most touching.
What about Albus? Well, Albus proved not to be all he was played out to be, either. He was The Mentor, the man Harry idolized... Harry would have done anything to impress him. From the very first book, Harry came to him about everything and trust and relied on him. So, it was (a lot) heartbreaking to find out he was grooming him for death. Damn. Albus Dumbledore was a man who made the hard choices. But his choices sucked.
Personally, I left the Harry Potter story feeling like Albus was a dick. He always "knew better"... and made a lot of mistakes, he never shared a piece of himself, leaving Harry to find whatever he could though books with questionable validity - and unable to even protect his mentor against all the backlash because he doesn't fucking know. Nothing we, or Harry, know about Dumbledore's past came from the man himself. And ultimately, he let Harry believe and trust in him when the only ending Dumbledore could see was Harry's death. And for his purpose, he used everyone around him - including Snape.
So, Dumbledore proved that good men can do bad things, and that great man can make mistakes, and that you never know.
And then, there is Lily Luna. Luna is the only living person to have been honored by Harry. But why? Well, because Luna showed Harry the most important thing.
Be yourself, be unapologetic about it, and don't be afraid to be different.
Where Snape and Dumbledore taught Harry that not everything you think is true, and that mankind has a lot of faucets to it, and are generally gray... Luna taught Harry that sometimes - you can be exactly what you appear to be, so long as you are being yourself. And being strange, or different, won't make you any less awesome.
So basically, through his choices of names, Harry instilled in his children some very important messages. First, be brave. Second, not everyone are as they seem and that's okay. Humans aren't just black and white. And finally, be yourselves, and don't be afraid to be unique.
A side note about Luna: I feel like they chose Luna for a second reason... Luna's translation is moon. And as Lupin could not be used because, you know, Teddy should have the option available if needed, Luna is the next best thing. A way to honor both of these fantastic human beings!