Photoshop will be the ideal software for your purpose. You can use the lasso tool to select the portion that you want to stay colored,
then Invert the selection and then go to Image>Adjustments>Desaturate.

If you want to add color that is not part of the image, Desaturate the entire image, select the Brush tool and set the Mode to Color. Select a color, then paint over the portion you want to color.