Use an image editing program like paint.net and use the magic wand or select tool to delete the white background. Make sure you save it as an image format that supports transparency like PNG, jpg does not support transparency.
Close, but you'll have to do more than that.
@OP:
I'll use PhotoShop as an example, as that's what I have/use.
1. Go ahead and duplicate the base layer and then hide it for now. Work on the lower layer first.
2. You'll need to clone stamp (or if you have CS5, CS6, or Creative Cloud, use the Content Aware fill) and fill in from the 'background' over the logo. This will get you the background to come in when we get rid of the white.
3. After you get it looking how you want/matched up, now move onto the layer we duplicated in step 1. Unhide it.
4. Couple different ways you could do this...could just select the white box with the magic wand tool and delete that selection from the layer and it should show the background from beneath it now. Or you could Select just the 'flag' area, and delete everything around it so you don't have the 'background' on there multiple times (not that it really matters, just another technique to keep in mind).
5. Once you've deleted the white, you can do w/e else you want to that layer if needed.
6. Save it - doesn't matter the format (PNG or JPG), but I'd recommend PNG just for the fact that it's higher quality and still a relatively small file size compared to JPG.