I did a little bit of research on BGP, and from what I understand you can control how your traffic gets to it's destination, but not how it arrives to you. Correct me if I am wrong thou, I am still trying to learn how BGP works.
You have some control over both. But obviously you have more control over where you send packets than you do over which direction others send them to you.
A network with multiple peerings does not have to announce its entire address space through all peerings. If some of your addresses are announced through only one of your peerings, then all packets to those addresses have to go through that peering. But that isn't good for reliability.
You can also get some control by splitting your address space into longer prefixes. For example if you are announcing 2001:db8::/32, then you can split that in half and announce both 2001:db8::/33 and 2001:db8:8000::/33. Anybody who can reach the /33s are supposed to use those. The /32 is only to be used by sources, which cannot reach the /33s. This indicates a preference, which as far as I recall is mandatory to follow according to some standard. But of course it is still technically possible for some sources to ignore that and send through the /32 anyway.
Another way to indicate a preference is by making the AS path longer. By announcing the same prefix through two different peerings, you can make one of them less preferred by sending a longer AS path. If there is only a small difference between the length of the path you announce, then there may be networks which see them as having the same length because the actual between the source and your network is different and cancels out the difference in your announcements.
None of the above methods can specify which source IPs they apply to. You announce the prefix through some peering, and only by looking at the packets you receive, will you learn for sure, which source IPs got to use those announcements. The set of IPs that are announced back to you through the peering will give you some hint about which source IPs you can expect to see.
I have also read about some people using a hack with the AS path to gain a bit more control over who uses that path. They simply insert a few ASes, which they do not want to use the announcement in the AS path, which they are announcing. This makes the path look longer and thus less preferred, but the specific ASes, which got inserted will never use the path, as it will look to them as if this announced path would lead to a loop.