The 보고 part comes from 보다 which is to see, while the 싶었어요 comes from 싶다, which is to want. So when you say 보고 싶었어요, you're saying "I missed you", but in a literal sense it's "I wanted to see you."
You can use the expression for "I've missed seeing your artwork" but you have to add the word for the artwork, which can be 작품, like say (person's name) 작품을 보고 싶었어요, but you cannot use 보고 싶었어요 if you want to say you missed your train. It's not like you wanted to actually see the train again, right? You want to say you didn't get on it on time. Unfortunately, I'm only a beginner so I don't know the exact way to translate this sentence >_< I think it's 기차를 놓쳤어요?
You can't say 보고 싶었어요 for "I miss my mother's cooking" as well, unless you just want to say you miss your mom, which is 엄마가 보고싶었어요. I think it's more appropriate to use the verb 먹다, which is to eat. When you say you miss your mom's cooking you're actually saying you want to eat the food she cooks, right? so 내 엄마 요리는 먹고 싶어요 might work.
If you want to make these sentences informal, dropping the 요 is enough. Keeping it on makes the sentences casual but formal enough.